主题
Git Commit Lint
1. 安装依赖
bash
pnpm add -D @commitlint/cli @commitlint/config-conventional husky2. 配置 package.json
在 package.json 中补充:
json
{
"scripts": {
"prepare": "husky"
}
}
prepare用来安装 Husky。
3. 新建 commitlint.config.js
js
export default {
extends: ['@commitlint/config-conventional'],
rules: {
'type-enum': [
2,
'always',
['build', 'chore', 'ci', 'docs', 'feat', 'fix', 'perf', 'refactor', 'revert', 'style', 'test'],
],
'type-case': [2, 'always', 'lower-case'],
'type-empty': [2, 'never'],
'subject-empty': [2, 'never'],
'subject-full-stop': [2, 'never', '.'],
'header-max-length': [2, 'always', 100],
},
}提交类型说明
build:构建配置、依赖、打包流程chore:杂项维护ci:CI 配置docs:文档变更feat:新增功能fix:修复问题perf:性能优化refactor:重构revert:回滚提交style:格式调整,不改逻辑test:测试相关
4. commit-msg:校验提交信息
新建 .husky/commit-msg 文件,内容如下:
bash
pnpm exec commitlint --edit "$1"5. 给文件执行权限
bash
chmod +x .husky/commit-msg6. 验证
bash
# 合法提交
git commit -m "feat: init project"
# 不合法提交
git commit -m "update code"后续:接入 lint-staged
1. 安装
bash
pnpm add -D lint-staged2. 配置 .lintstagedrc
以自动格式化为例
json
{
"*": "prettier --write --ignore-unknown"
}3. .husky/pre-commit:在提交前处理暂存文件
新建 .husky/pre-commit 文件,内容如下:
bash
pnpm exec lint-staged