@uedlinker/cz-conventional-changelog
v0.5.1
Published
根据 Angular git commit 提交规范定制的适配器
Readme
cz-conventional-changelog
根据 Angular git commit 提交规范定制的适配器
commitizen 家族的一部分, 提示定制化后的 conventional changelog 标准。
先来看看效果

使用
该工具有 2 种使用方法,一种是项目配置,另一种是个人配置。
命令行工具
如果想直接用git cz 代替 git commit ,需要全局安装 commitizen 或者 使用 npx git cz (NPM 5.2+)
$ npm i -g commitizen
$ git cz或
$ npx git cz如果只想在特定项目中使用,则需要在安装了 commitizen 模块的项目中配置 npm script
{
"script": {
"commit": "git-cz"
}
}配置完成后每次提交时执行如下命令即可
$ npm run commit注意: 如果你因为使用
husky这样的工具而附带使用了precommit这样的钩子,你需要将脚本命名为除“commit”之外的其他名称(例如“cm”:“git-cz”)。因为npm-scripts有一个“特性”,它在运行xxx名称的脚本时会自动运行名称为prexxx的脚本。实际上,如果你将脚本命名为 “commit”,则 npm 和 husky 将运行两次 “precommit” 脚本,解决方法就是通过更改名称来阻止 npm 触发的 precommit 脚本。
项目配置
直接在项目的 package.json 中配置好,所有参与此项目的开发人员只需正常安装所有依赖包,在提交 git commit 的时候用 git cz 或配置好的 npm script 来代替 git commit 命令即可
此方法 优点 是单点维护,所有变更和依赖包升级都根据项目进行变化,开发者不需要关心,减轻开发人员设置工作,缺点 如果是通过 npm script 运行,则脱离此项目后无法在别的项目中使用
配置适配器
执行如下命令配置所用的适配器
如果你的 NPM 5.2+ ,你可以直接通过 npx 进行初始化
$ npx commitizen init @uedlinker/cz-conventional-changelog --save-dev --save-exact如果你的 NPM 版本 < 5.2,你可以执行如下命令进行配置
如果已全局安装 commitizen
$ commitizen init @uedlinker/cz-conventional-changelog --save-dev --save-exact如果在项目中安装 commitizen
$ ./node_modules/.bin/commitizen init @uedlinker/cz-conventional-changelog --save-dev --save-exact上面的命令帮助我们做了下面 3 件事。
- 安装 npm 模块
@uedlinker/cz-conventional-changelog - 在
package.json文件中的dependencies或devDependencies保存依赖包信息 - 在
package.json文件中的根节点上添加config.commitizen节点信息,如下:
{
...
"config": {
"commitizen": {
"path": "./node_modules/@uedlinker/cz-conventional-changelog"
}
}
}上面的配置用来告知 commitizen 用哪一个适配器来提交这个仓库的 commit , commitizen.path 通过 require.resolve 解决路径的读取并支持如下特性:
- npm 模块
- 相对于
index.js的文件 - 相对于根目录(
process.cwd())的以js作为扩展名的文件名称 - 完整的相对路径
- 绝对路径
初始化结束之后即可用 git cz 或配置好的 npm script 来代替 git commit 命令
个人配置
通过在个人电脑上全局安装所需依赖包和设置适配器,配置好之后即可正常使用 git cz 命令
此方法 优点 是设置不受具体项目影响,设置好之后即可在各项目中使用 git cz 命令,缺点 是需要每个开发者对自己的环境进行配置,同时如果多个项目之间使用的适配器版本不同的话还存在冲突的可能性
安装
全局安装 commitizen 和 @uedlinker/cz-conventional-changelog
$ npm install -g commitizen @uedlinker/cz-conventional-changelog配置适配器
在 home 文件夹中创建 .czrc 文件,路径引用全局安装的 commitizen 适配器
windos 下暂时还未测试应该创建在哪个文件夹下,欢迎测试后完善此处内容
$ echo '{ "path": "@uedlinker/cz-conventional-changelog" }' > ~/.czrc配置成功后,凡是需要使用 git commit 提交的时候一律改为 git cz 即可。
