一.项目本地安装
1.npm install --save-dev commitizen
2.npx commitizen init cz-conventional-changelog --save-dev --save-exact
3.以后提交代码用 npx cz
4.Select the type of change that you're committing
Type | 作用 |
---|---|
feat | 新增特性 |
fix | 修复bug |
docs | 修改文档 |
style | 代码格式修改(white-space, formatting) |
refactor | 代码重构 |
perf | 改善性能 |
test | 测试 |
build | 变更项目构建或外部依赖(gulp, npm) |
ci | 更改持续集成软件的配置文件或package 中的scripts |
chore | 其他不修改src或测试文件的更改 |
revert | 代码回退 |
5.What is the scope of this change (e.g. component or file name): (press enter to skip) 更改的范围是什么(例如组件或文件名):(按回车键跳过)
建议写
6.Write a short, imperative tense description of the change (max 88 chars):用简短的语句描述变更(最多88个字符)
必须写
7.Provide a longer description of the change: (press enter to skip)提供更长的变更描述:(按回车键跳过)
跳过
8.Are there any breaking changes? 有什么突破性的变化吗
9.Does this change affect any open issues? 这个变化是否影响到任何未解决的问题
二.这样配置完,如果主动用npx cz 是没问题了,可是此时用git commit 是可以绕过规则继续提交的,接下来要在 git commit 的时候做一下拦截判断
1.安装 commitlint
npm i @commitlint/cli @commitlint/config-conventional -D
2.配置
echo "module.exports = {extends: ['@commitlint/config-conventional']}" > commitlint.config.js
3.如果没安装Husky,安装一下,如已安装则跳过此步
npx husky-init && npm install
4.npx husky add .husky/commit-msg 'npx --no -- commitlint --edit "$1"'
三.前面把该装的都装了,现在验证吧
如果此时你随便 git commit -m '😄'
就会报错了
此时你有两个选择
npx cz
按提示步骤弄
或者 git commit -m "fix: lint on commitmsg"
按标准写法来,把上面的标准type加进来,且冒号后面加一个空格
当然如果你觉得 npx cz
用着不习惯可以在 package.json
的scripts
里面加一个"commit": "cz"
这样以后就用 npm run commit