Commitlint git commit 格式校验工具。
npm install -g @commitlint/cli @commitlint/config-conventionaltouch commitlint.config.js
// commitlint.config.js
module.exports = {
extends: ['@commitlint/config-conventional']
}默认读取根目录下commitlint.config.js 配置文件
commitlint --config <file path>{
extends: [
// 使用本地共享配置文件
'./commitlint.local.js',
// 使用第三方npm包
'@commitlint/config-conventional',
// 以 `<scope>/commitlint-config` 格式的第三方包, 提供简写模式
'@coolcompany',
// commitlint-config-*
'lerna',
]
}{
parserPreset: 'conventional-changelog-atom',
}{
formatter: '@commitlint/format',
}{
'type-enum': [2, 'always', ['foo']]
}{
ignores: [(commit) => commit === ''],
}{
defaultIgnores: true
}'https://github.com/conventional-changelog/commitlint/#what-is-commitlint',
{
prompt: {
messages: {},
questions: {
type: {
description: 'please input type:',
},
},
},
}[规则名称]:[level, applicable, value]
规则可接收: 1. 规则数组 Array, 2. 返回规则数组的函数 () => arry , 3. Promise规则数组 Promise<array> ,作为值
{
"rules":{
"header-max-length": [0, "always", 72],
"header-max-length": () => [0, "always", 72],
"header-max-length": async () => [0, "always", 72],
}
}规则插件为我们提供自定义规则校验个能力。
{
rules: {
// 添加规则
'header-size-10': [2, 'always']
}
plugins: [
// 定义插件
{
rules:{
// 定义规则
'header-size-10': ({header}) => {
const pass = header.length > 10
const message = `header 长度不能超过10个字符`
return [pass, message]
}
}
}
]提示器类似 commitizen 提供commit 提示工具。
npm i -D @commitlint/cli @commitlint/config-conventional @commitlint/prompt-cli// commitlint.config.js
module.exports = {extends: ['@commitlint/config-conventional']}"scripts": {
"commit": "commit"
}git add *
npm run commitcommitizen 作为 Prompt 的替代方案, 官方为他提供适配器 @commitlint/cz-commitlint
该适配器主要有两部分组成:
通过 commitlint.config.json 配置文件自定义类型提示
为命令配置中文提示

image.png

image.png