优势
- 规范——遵从 AngularJS’s commit message convention
- 简单——通过命令行可视化步骤提示填写对应描述,防止遗漏
- 扩展——支持团队自定义提交模板(cz-customizable)
- 分析——支持生成commit日志(standard-version),利于版本迭代
安装
- 项目级别安装(可保证团队成员版本一致)
npm install --save-dev commitizen
- 初始化Commitizen配套的适配器,如果你的npm版本在5.2以上,那么你可以使用npx来初始化.
- 项目级别安装(可保证团队成员版本一致)
npx commitizen init cz-conventional-changelog --save-dev --save-exact
该初始化命令主要完成以下3步:
- 安装cz-conventional-changelog包(提供日志标准)
- 将cz-conventional-changelog加入package.json的devDependencies依赖中
"devDependencies": {
"cz-conventional-changelog": "^3.3.0"
"cz-customizable": "^6.3.0",
},
- 在package.json根路径新增npm执行命令config.commit及config.commitizen配置项
"scripts": {
"commit": "cz"
},
"config": {
"commitizen": {
"path": "./node_modules/cz-conventional-changelog"
}
}
husky
- 初始化 husky 配置
cd ${项目根目录} npx husky install
- 添加 pre-commit 以及 commit-msg hook
commitlint 规范具体请查看git规范-提交与合并
npx husky add .husky/pre-commit "npm run lint && npm run styleLint && git add ."
npx husky add .husky/commit-msg "npx --no-install commitlint --edit \$1"
// yarn commitlint --config .commitlintrc.js --edit $1
- 添加 package scripts
# 往 package.json scripts 字段中添加下面的内容
"lint": "eslint --ext .vue,.js,.ts,.tsx ./ --max-warnings 0 --fix",
"styleLint": "stylelint **/*.{css,scss,sass,less,vue} --fix"