“我报名参与金石方案1期挑战——分割10万奖池,这是我的第4篇文章,点击检查活动概况”
布景介绍
咱们在运用一个比较凶猛的框架或者库的时分,常常能够看到 CHANGELOG.md,保护版别更新内容。
很多时分,特别是在你开源自己的一个东西或库时,这种版别更新内容对错常有必要的,假如用户运用了你的轮子,连更新内容都不知道,试问你敢用吗? 那么这些都是怎么写的呢?每次发版都要手动记载吗?明显不是,这些都是靠提条记载生成的。
比如咱们在 github 上随便找一个库:https://github.com/vuepress/vuepress-next
,能够看到它就有这个文件
点进去能够检查具体内容:留意我画红线的这 2 个,咱们是能够跳到对应 issue 和对应代码提交记载的。
Commitizen 介绍
1、团队约束
生成这种 CHANGELOG 有一个前提,便是团队成员都按规矩提交。人不是机器,习气不养成往往会忽略,这种约束仍是让东西来做吧。
2、Commitizen 是一个编撰契合 Commit Message 格局标准的一款东西,至于标准 Commit Message 格局标准,能够百度一下或者一会提交示例介绍。
3、部分安装 commitizen:npm install commitizen -D
4、履行脚本设置 package.json
在项目根目录下运转下面命令,使其支撑angular的 Commit message 格局
// 假如你运用npm履行下面命令:
commitizen init cz-conventional-changelog --save-dev --save-exact
// 假如运用yarn,则履行下面:
commitizen init cz-conventional-changelog --yarn --dev --exact
留意,–save-exact 相当于锁定版别号
此时 package.json 新增了这部分内容
{
"scripts": {
"commit": "cz"
},
"devDependencies": {
"commitizen": "^4.2.4",
"conventional-changelog-cli": "^2.2.2"
},
"config": {
"commitizen": {
"path": "./node_modules/cz-conventional-changelog"
}
}
}
5、修改代码提交过程介绍
这时分就能够提交尝试下,提交的时分直接履行刚才增加的脚本:yarn commit
或者 npm run commit
,然后就会看到让你挑选的各种页面,挑选即可
第一步: 挑选这次提交的内容类型:提交类型是以后生成 CHANGELOG 分类题目
第二步: 这次提交影响范围
第三步:简短描绘:假如你运用 gitlab 或者 github 进行远程分支 Merge requset 的时分,这个便是默认的title
第四步:详细描绘
第五步:是否严重更新(改变):一般具有重要的大版别或者损坏本来代码的时分需要标记一下
第六步:这次提交对哪些翻开的 issue 有影响:类似于 github 开源形式,代码的保护不管需求仍是 fix都有对应的issue讨论进行code的支撑。git message 这一步便是为了关联issue。假如挑选是,可写上相关issue 对应号码。(也便是上面的那 2 个能够跳转的当地)
主动发生CHANGELOG
那么正规的写提交记载最终便是为了让团队其他人看懂,还有一个意图是为了更标准的发生CHANGELOG,下面看看主动发生CHANGELOG的过程。
1、安装发生 changelog 插件 conventional-changelog-cli:npm install -D conventional-changelog-cli
2、在 package.json 增加脚本
"changelog": "conventional-changelog -p angular -u -i CHANGELOG.md -s -r 0"
3、履行脚本,检查结果:yarn changeLog
或 npm run changeLog
最终即可生成一个提交日志文件
我这儿测验了下:
feat 是 npm run commit 按过程提交的
fix 是直接 git commit -m “fix: test 符号” 提交的
能够看到都生成了日志文件,所以假如团队每个人都能按 Commit 标准提交的话,第一步 Commitizen 约束是能够不需要的(但是会存在一个问题便是不能实现 issue 与 commitId 的代码提交记载的联动了)。