designable工程使用cz-conventional-changelog模块和scripts/validate-commit-msg.js
文件做了代码提交日志的规范。
cz-conventional-changelog
要使用cz-conventional-changelog,需使用npm install -g commitizen
全局安装commitizen。
再在package.json中配置如下内容:
"config": {
"commitizen": {
"path": "./node_modules/cz-conventional-changelog"
}
},
就可以实现git cz
代替git commit
的效果。
这么做的好处是,执行命令后,会依次询问:
- 这次提交的类型,比如fix、new feature、improvement还是其它。(单选,如下图)
- 这次修改的影响范围有多大:是全局的、还是只是针对个别组件。(字符串类型,可以随意输入)
- 简要描述修改了什么,最好是一句话,相当于修改标题。(字符串类型,可以随意输入)
- 详细描述修改了什么,最好分段描述,相当于内容区(字符串类型,可以随意输入)
- 是否有突破性变化(布尔类型,输入y或者n)
- 这个改变是否会造成不良影响(布尔类型,输入y或者n),如果是则还会再询问你具体的影响是什么,通常填写禅道或其它bug管理平台的bugId。
最终提交的日志是符合谷歌的日志提交规范的。
validate-commit-msg.js
由于工程引入ghooks模块,开启了git hook,因此在git提交时总会触发eslint以及scripts/validate-commit-msg.js
的代码提交日志规范的校验。
之所以在有cz-conventional-changelog
的情况下,还做日志规范校验是因为总有人会有意或无意地使用git commit
做代码提交。