前言
consventional-changelog-stalinkay是一个开源的npm包,它可以帮助我们生成符合Conventional Commits规范的CHANGELOG.md文件,从而方便我们管理项目的版本变更。
本篇教程会讲述如何使用conventional-changelog-stalinkay生成CHANGELOG.md文件,并将其与自动化构建系统集成,以便每一次提交都可以自动更新CHANGELOG.md文件。
Conventional Commits 规范简介
Conventional Commits规范定义了一种commit message的格式,它由三个部分组成:header,body和footer。
header包含了type,scope和subject三个参数。其中,type是必选参数,用于描述本次commit的类别;scope是可选参数,用于描述项目的哪一个部分进行了修改;subject是必选参数,用于描述本次commit的概要信息。header的格式如下所示:
<type>[optional scope]: <subject>
body部分可以用于更详细地描述本次commit所做的更改。它以空行开始,以空行结束。
footer部分可以用于与之前的commit进行关联,以及指定一些关闭相关issue等操作。
Conventional Commits规范可以帮助我们更好地组织commit message,从而方便地查看每次代码变更的内容。
安装 conventional-changelog-stalinkay
首先,我们需要安装conventional-changelog-stalinkay,可以通过如下命令进行安装:
npm install -g conventional-changelog-cli
使用 conventional-changelog-stalinkay 生成 CHANGELOG.md 文件
- 初始化 CHANGELOG.md 文件
在项目的根目录下,可以使用如下命令初始化CHANGELOG.md文件:
conventional-changelog -p angular -i CHANGELOG.md -s
其中,-p 参数用于指定Conventional Commits规范的格式,angular是其一种实现。
-i 参数用于指定生成的CHANGELOG.md文件的名称和路径,这里的名称为“CHANGELOG.md”。
-s 参数用于指定是否在生成的CHANGELOG.md文件中添加一个commit范围的版本区间。
- 更新 CHANGELOG.md 文件
一旦CHANGELOG.md文件被初始化后,我们可以通过如下命令更新CHANGELOG.md文件:
conventional-changelog -p angular -i CHANGELOG.md -s
在运行该命令时,conventional-changelog-stalinkay将会读取所有的commit message,并根据Conventional Commits规范的格式重新生成CHANGELOG.md文件。生成的CHANGELOG.md文件将包含每一个版本的变更记录以及与之关联的commit message。
集成 conventional-changelog-stalinkay 到自动化构建系统
在自动化构建系统中集成conventional-changelog-stalinkay,我们可以在每一次代码提交后自动更新CHANGELOG.md文件。这样做的好处是,我们可以随时查询任意版本的代码变更,从而更好地管理代码库。
在集成conventional-changelog-stalinkay之前,我们需要对git hook进行设置。在.git/hooks目录中,创建一个名为“commit-msg”的文件,并将以下内容复制到该文件中:
#!/bin/sh exec < /dev/tty && node_modules/.bin/conventional-changelog -i CHANGELOG.md -s -p angular -k types
在上面的代码中,我们指定了当每一次git commit操作时,都会运行conventional-changelog-stalinkay来更新CHANGELOG.md文件。在更新CHANGELOG.md文件时,我们指定了-p参数值为“angular”,-i参数值为“CHANGELOG.md”,-s参数表示为添加范围并指定-k参数值为“types”。
现在,当我们提交代码时,每一条commit message都会自动地更新CHANGELOG.md文件,并将变更记录合并到CHANGELOG.md文件中。
总结
Conventional Commits规范可以帮助我们组织commit message,从而方便查看每次代码变更的内容。通过使用conventional-changelog-stalinkay,我们可以生成符合规范的CHANGELOG.md文件。将conventional-changelog-stalinkay集成到自动化构建系统中,可以帮助我们每次代码提交时自动化更新CHANGELOG.md文件。
示例代码:
-- -------------------- ---- ------- -- --- ------------ -- ---------------------- -- ------- -- ------------ -- -- -- ------------ -- ---------------------- -- ------- -- ------------ -- -- --- ---- --------- ---- - -------- -- ---------------------------------------- -- ------------ -- -- ------- -- -----
使用这个代码可以方便快捷地进行操作,如果你在写一个大项目或者是维护一个已有项目,推荐使用这个npm包,能够更加好掌握每一次提交的内容。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005626281e8991b448dfaba