项目工程化-Commitizen
Commitizen?
一个工具,用于规范代码提交信息的工具。cz-conventional-changelog
是一个 Commitizen
的适配器,用于适配 conventional-changelog
的提交规范。
为什么要介绍这么一个工具:
当你在提交commit
的时候,肯定会手动输入一些type
:
fix(axios): 修复axios请求失败的问题 #1
但是现在有这么一个工具,只需要根据自己的情况选择对应的条件就好了;
如何使用?
这里可以安装到全局,也可以安装到项目中,这里推荐安装到项目中,因为这样可以避免不同项目使用不同的 Commitizen
版本,导致提交信息不一致的问题。
::: tip
官方模板:cz-conventional-changelog
, 特点是免配置,开箱即用,但提示全部为英文,不太友好
自定义模板:cz-customizable
, 特点是可以自定义添加 emoji
表情,可以自定义提示语言,但需要配置,且无法自定义提交类型(scope
)
linpengteng:cz-message-helper
修改版,特点是可以自定义 emoji
表情,可以自定义提示语言,可以自定义提交类型(scope
),但需要配置
:::
使用官方模板cz-conventional-changelog
安装依赖
1 | pnpm add -D commitizen cz-conventional-changelog |
添加配置文件的方式为俩种:
package.json 配置
1 | { |
.czrc
在项目根目录创建.czrc
文件,内容如下:
1 | { |
接着在package.json
中添加命令”
1 | { |
当你执行pnpm commit
控制台会输出如下:
1 | ebugger attached. |
这个时候就完成了。如果英文不好的可以继续看下一个方案:
使用自定义模板cz-customizable
安装依赖
1 | pnpm add -D commitizen cz-customizable |
.czrc
在项目根目录创建.czrc
文件,内容如下:
1 | { |
接着在package.json
中添加命令”
1 | { |
自定义模板 .cz-config.js
需要在项目根目录下创建一个名为.cz-config.js
的文件,文件内容如下:
1 | // .cz-config.js |
把代码文件添加到暂存区后,使用 Commitizen 生成符合规范的代码提交信息:
1 | All lines except first will be wrapped after 100 characters. |
这样看起来是不是舒服多了? 但令人遗憾的是,cz-customizable
无法自定义提交类型(scope
),所以我找到了 linpengteng
的 cz-message-helper
进行了修改,使其可以自定义提交类型(scope
)
cz-message-helper
安装
1 | pnpm add -D commitizen cz-message-helper |
.czrc
在项目根目录创建.czrc
文件,内容如下:
1 | { |
不过我习惯将配置文件放置package.json
1 | { |
接着在package.json
中添加命令”
1 | { |
自定义模板 .cz-message.js
需要在项目根目录下创建一个名为.cz-message.js
的文件,文件内容如下:
1 | module.exports = { |
1 | { |
把代码文件添加到暂存区后,使用 Commitizen
生成符合规范的代码提交信息:
1 | 版本提交规范 on master [⇡»+] is 📦 1.0.0 via ⬢ v18.16.0 |