通过之前对Husky和Lint-staged的了解,我们已经可以在git提交代码时进行代码风格的检测。但是在代码风格保持统一的同时,代码提交信息的规范也同样重要。好的提交规范,可以帮助开发人员快速锁定问题,减少阅读代码的障碍。所以我们在这里引入了Commitlint插件,来对代码提交信息进行校验。
安装
安装时需要同时安装 @commitlint/config-conventional 和 @commitlint/cli
npm add @commitlint/config-conventional @commitlint/cli --dev
配置
"husky": {"hooks": {"pre-commit": "npm run lint","commit-msg": "commitlint -e $HUSKY_GIT_PARAMS"}}
基本说明
提交格式(注:冒号后面需要有空格)
<type>: <subject>
type
type是 commit 的提交类型
目前使用的类别有:
"docs", // 仅仅修改了文档,比如README, CHANGELOG, CONTRIBUTE等等"chore", // 改变构建流程、或者增加依赖库、工具等"feat", // 新增feature"fix", // 修复bug"merge", // 合并"perf", // 优化相关,比如提升性能、体验"refactor", // 代码重构,没有加新功能或者修复bug"revert", // 回滚到上一个版本"style", // 仅仅修改了空格、格式缩进、都好等等,不改变代码逻辑"test" // 测试用例,包括单元测试、集成测试等
subject
subject是 commit 的描述,可以做一些配置,如最大长度限制,首字母大写等。
commitlint.config.js配置文件
可以直接创建commitlint.config.js对commitlint进行配置,代码配置介绍:rules
// commitlint.config.js// 代码git提交信息编写规范module.exports = {extends: ["@commitlint/config-conventional"],rules: {"type-enum": [2,"always",["docs", // 仅仅修改了文档,比如README, CHANGELOG, CONTRIBUTE等等"chore", // 改变构建流程、或者增加依赖库、工具等"feat", // 新增feature"fix", // 修复bug"merge", // 合并"perf", // 优化相关,比如提升性能、体验"refactor", // 代码重构,没有加新功能或者修复bug"revert", // 回滚到上一个版本"style", // 仅仅修改了空格、格式缩进、都好等等,不改变代码逻辑"test" // 测试用例,包括单元测试、集成测试等]],},};
rules内各项配置接收各项配置如:’header-max-length’: [0, ‘always’, 72]
数组中三个值含义分别为
| 配置项的值 | 可选参数 | 含义 |
|---|---|---|
| 第一个值:提示等级 | 0,1,2 | 0为disable,1为warning,2为error |
| 第二个值:是否使用 | always,never | always:使用,never:不使用 |
| 第三个值:rules具体配置项 | 可参考官方文档 |
错误展示
当代码的提交信息不符合预定的规范时会直接弹出错误,导致提交失败

