Commitlint: 校验你的 message
配置 commitlint
commitlint 搭配 husky 的 commit message 钩子后,每次提交 git 版本信息的时候,会根据配置的规则进行校验,若不符合规则会 commit 失败,并提示相应信息。
npm install --save-dev @commitlint/{config-conventional,cli}
npm install --save-dev @commitlint/config-conventional @commitlint/cli
//项目根目录commitlint.config.js
echo "module.exports = {extends: ['@commitlint/config-conventional']}" > commitlint.config.js
修改配置文件
说明:
- feature:新功能
- update:更新某功能
- fixbug:修补某功能的bug
- refactor:重构某个功能
- optimize: 优化构建工具或运行时性能
- style:仅样式改动
- docs:仅文档新增/改动
- chore:构建过程或辅助工具(新增插件)的变动
- rule配置说明::rule由name和配置数组组成,如:'name:[0, 'always', 72]',数组中第一位为level,可选0,1,2,0为 disable,1为warning,2为error,第二位为应用与否,可选always|never,第三位该rule的值。具体配置例子如下:
- scope:一个可选的修改范围。用于标识此次提交主要涉及到代码中哪个模块。
- description:一句话描述此次提交的主要内容,做到言简意赅。
示例:
<type>(<scope>): <subject>
body?
footer?
git commit -m 'feat(xxx模块): 增加 xxx 功能'
git commit -m 'bug(xxx模块/xxx文件): 修复 xxx 功能'
commitlint.config.js
module.exports = {
extends: ["@commitlint/config-conventional"],
rules: {
"type-enum": [2, "always", ["feature", "update", "fixbug", "refactor", "optimize", "style", "docs", "chore"]],
"type-case": [0],
"type-empty": [2, "never"], //type必填
"scope-empty": [2, "never"], //scope必填
"scope-case": [0],
"subject-full-stop": [0, "never"],
"subject-case": [0, "never"],
"header-max-length": [0, "always", 72]
}
};