Appearance
规范 commit
对于我们的 commit 信息,也是有统一规范的,不能随便写,要让每个人都按照统一的标准来执行,我们可以利用 commitlint 来实现。
安装
bash
pnpm add @commitlint/cli @commitlint/config-conventional -D
使用
- 根目录新建 commitlint.config.cjs,然后添加下面代码:
js
/**
* "off"或者0:关闭规则
* "warn"或1:开启规则抛出警告
* "error"或2:开启规则抛出错误
*/
module.exports = {
// 继承的规则
extends: ['@commitlint/config-conventional'],
// @see: https://commitlint.js.org/#/reference-rules
rules: {
'type-enum': [
2, // 当前验证的错误级别
'always', // 在什么情况下进行验证,always表示一直进行验证
[
'feat', // 新增功能、页面
'update', // 更新:普通更新
'fix', // 修补bug
'docs', // 修改文档、注释
'style', // 格式:不影响代码运行的变动、空格、格式化等等
'refactor', // 代码重构,未新增任何功能和修复任何bug
'perf', // 优化:提升性能、用户体验等
'test', // 测试用例:包括单元测试、集成测试
'chore', // 其他不修改src或测试文件的更改
'revert', // 回滚到上一个版本
'ci', // 对CI/CD配置文件和脚本的更改
'build', // 改变构建流程,新增依赖库、工具等(例如:修改webpack)
],
],
'type-case': [0],
'type-empty': [0],
'scope-empty': [0],
'scope-case': [0],
'subject-full-stop': [0, 'never'],
'subject-case': [0, 'never'],
'header-max-length': [0, 'always', 108], // header上最大108字符
},
};
- 在 package.json 中配置自定义命令
json
"scripts": {
"commitlint": "commitlint --config commitlint.config.cjs -e -V"
},
- 在 husky 添加 commit-msg 钩子
bash
npx husky add .husky/commit-msg 'npx --no -- commitlint --edit "$1"'
示例
- 之后 commit 信息必须带有前缀:
wiki
'feat', // 新增功能、页面
'update', // 更新:普通更新
'fix', // 修补bug
'docs', // 修改文档、注释
'style', // 格式:不影响代码运行的变动、空格、格式化等等
'refactor', // 代码重构,未新增任何功能和修复任何bug
'perf', // 优化:提升性能、用户体验等
'test', // 测试用例:包括单元测试、集成测试
'chore', // 其他不修改src或测试文件的更改
'revert', // 回滚到上一个版本
'ci', // 对CI/CD配置文件和脚本的更改
'build', // 改变构建流程,新增依赖库、工具等(例如:修改webpack)
- 注意中间的空格
bash
git commit -m 'feat: 新增页面'
git commit -m 'update: 更新页面'