结合 commitizen
commitlint
conventional-changelog-cli
husky
,进行封装,一键安装,开箱即用的 git commit
规范。
- 自动提示 commit 填写格式。
- 自动提示影响范围
- commit 是否规范,不规范不允许提交
- 集成 git add . && git commit 不需要在执行两个命令
- 自动生成 changelog
- 下载
# 为了防止和已有的包冲突,可以提前移除 `node_modules` 后再安装
rm -rf node_modules
# npm
npm i ly-tool-git-commitlint [email protected] [email protected] [email protected] [email protected] [email protected] -D
# yarn
yarn add ly-tool-git-commitlint [email protected] [email protected] [email protected] [email protected] -D
- 在 package.json 中添加
{
"scripts": {
"log": "conventional-changelog --config ./node_modules/ly-tool-git-commitlint/lib/log -i CHANGELOG.md -s -r 0",
"cz": "npm run log && git add . && git cz"
},
"husky": {
"hooks": {
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
}
},
"config": {
"commitizen": {
"path": "./node_modules/ly-tool-git-commitlint/lib/cz"
}
}
}
增加 commitlint.config.js 文件
module.exports = {
extends: ['./node_modules/ly-tool-git-commitlint/lib/lint']
};
npm run cz # git add . && git commit -m 'feat:(xxx): xxx'
npm run log # 生成 CHANGELOG
- 代码提交 npm run cz 标注一个提交的类型(选择)
- (必填)本次提交的改变所影响的范围(选择)
3. (非必填)提供更详细的变更描述 4. (非必填)是否存在不兼容变更? 5. (非必填)此次变更是否影响某些打开的 bug/issue
规范名 | 描述 |
---|---|
feat | 一个新功能 |
ui | 更新用户界面和样式文件 |
fix | Bug修复 |
docs | 修改文档 |
merge | 合并代码 |
art | 代码格式化 |
perf | 性能优化 |
refactor | 重构代码 |
revert | 撤销上一次的提交 |
release | 发布版本 |
test | 测试用例 |
build | 影响构建系统或外部依赖的更改(例如:gulp,npm,webpack) |
init | 初次提交 |
dep_add | 添加依赖 |
dep_rm | 删除依赖 |
规范名 | 描述 |
---|---|
global | 影响整个项目 |
noproblem | 无影响 |
ui | UI 界面 |
data | 数据变化 |
component | 影响公共组件使用 |
unknown | 不知道影响范围 |
- 更新readme
- 优化scope字段在changelog文件内的展示 由英文展示为中文
- 部分性能优化
- husky生效
- 修复没有选择scope时changelog错位的bug
- 限定husky包版本
- scope删除modules字段