bash
# 安装commitizen
npm install --save-dev commitizen
# 初始化Conventional Commits规范适配器
npx commitizen init cz-conventional-changelog --save-dev --save-exact
最后一步,需要在package.json中添加一个script
"scripts": {
..., // 此处省略其它配置
"commit": "cz"
}
bash
此时你的package.json应该是这样的:
{
"name": "changelog",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo "Error: no test specified" && exit 1",
"commit": "cz"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"commitizen": "^4.2.4",
"cz-conventional-changelog": "^3.3.0"
},
"config": {
"commitizen": {
"path": "./node_modules/cz-conventional-changelog"
}
}
}
使用release-it自动生成变更日志
安装release-it:npm init release-it
bash
当前不需要在npm进行发布,因此需要在.release-it.json中添加下面的配置,禁用npm发布:
"npm": {
"publish": false
}
为了兼容当前的提交信息格式,还需要执行下面的指令安装一个插件:
npm install @release-it/conventional-changelog --save-dev
如果想使用angular默认的changelog生成规范,只需要进行下面的配置就可以了:
创建.release-it.json
bash
{
"plugins": {
"@release-it/conventional-changelog": {
"infile": "CHANGELOG.md",
"ignoreRecommendedBump": true,
"strictSemVer": true,
"preset": {
"name": "conventionalcommits",
"types": [
{ "type": "feat", "section": "功能" },
{ "type": "fix", "section": "修复BUG" },
{ "type": "docs", "section": "文档" },
{ "type": "style", "section": "样式" },
{ "type": "refactor", "section": "重构" },
{ "type": "perf", "section": "性能优化" },
{ "type": "test", "section": "测试" }
]
}
}
},
"git": {
"commitMessage": "版本号 v${version}",
"commit": true,
"tag": true,
"push": true
},
"npm": {
"publish": false
}
}