简介
@marionebl/conventional-changelog
是一个基于 conventional commits 的 changelog 生成器。它能够根据代码提交记录自动生成 changelog,避免手动维护 changelog 带来的巨大工作量和问题。
安装
使用 npm 安装:
npm install -g @marionebl/conventional-changelog
使用
生成 changelog
- 在项目的 Git 仓库中提交符合 conventional commits 标准的代码;
- 在项目根目录下执行以下命令:
conventional-changelog -p angular -i CHANGELOG.md -s
其中,-p angular
指定使用规范为 Angular,-i CHANGELOG.md
指定生成的 changelog 文件名为 CHANGELOG.md,-s
指定生成的 changelog 中未发布的版本会被添加到 Unreleased 标题下。
集成到项目中
1. Gulp 集成
-- -------------------- ---- ------- ----- --------------------- - --------------------------------------------- ----- ---- - ---------------- ---------------------- -------- -- - ------ ----------------------- ------- --------- -- ----------------------------------- ---
2. Grunt 集成
-- -------------------- ---- ------- -------------- - --------------- - --------------------------------------------------- ------------------ ---------------------- - -------- - ------- --------- -- -------- - ---- -------------- - - --- --
3. Git Hooks 集成
- 安装
husky
:
npm install husky --save-dev
- 在
package.json
中增加以下代码:
{ "husky": { "hooks": { "prepare-commit-msg": "exec < /dev/tty && git cz --hook || true", "postcommit": "conventional-changelog -p angular -i CHANGELOG.md -s && git add CHANGELOG.md" } } }
其中,prepare-commit-msg
用于在每次提交代码的时候使用 commitizen
进行规范的提交,postcommit
则用于在每次成功提交代码后自动生成 changelog 并添加到 Git 仓库中。注意,postcommit
只在每次成功提交时触发,因此如果你是第一次使用该钩子,需要手动添加一条符合 conventional commits 标准的提交。
示例代码
1. 生成 changelog
conventional-changelog -p angular -i CHANGELOG.md -s
2. Gulp 集成
-- -------------------- ---- ------- ----- --------------------- - --------------------------------------------- ----- ---- - ---------------- ---------------------- -------- -- - ------ ----------------------- ------- --------- -- ----------------------------------- ---
3. Grunt 集成
-- -------------------- ---- ------- -------------- - --------------- - --------------------------------------------------- ------------------ ---------------------- - -------- - ------- --------- -- -------- - ---- -------------- - - --- --
4. Git Hooks 集成
{ "husky": { "hooks": { "prepare-commit-msg": "exec < /dev/tty && git cz --hook || true", "postcommit": "conventional-changelog -p angular -i CHANGELOG.md -s && git add CHANGELOG.md" } } }
总结
@marionebl/conventional-changelog
凭借其实用的功能,受到了广泛的应用。通过学习使用它的方法,可以让我们更好地管理项目的 changelog,同时避免手动维护 changelog 带来的烦恼。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066bca967216659e24461c