npm包 @nodepack/conventional-changelog 使用教程

阅读时长 6 分钟读完

前言

在开发中,我们经常需要管理项目版本。版本管理不仅可以方便我们追溯、排错,同时也可以协助团队沟通、提高开发效率。而 Conventional Commits specification 则是一种规范化的提交信息,有利于版本控制和自动生成 changelog。本文将介绍如何使用 npm 包 @nodepack/conventional-changelog 自动生成 changelog。

环境准备

在使用 @nodepack/conventional-changelog 之前,需要确认开发环境已经具备以下条件:

  • Node.js 环境
  • Git 环境

安装

可以使用 npm 或 yarn 安装 @nodepack/conventional-changelog:

配置

package.json

打开 package.json,在 scripts 对象中添加一个新的命令:

该命令的具体含义:

  • conventional-changelog:命令的名称,由于安装了 @nodepack/conventional-changelog,可以直接使用该命令。
  • -p angular:使用 Angular 的日志风格(其他风格可参考官方文档),用于解析提交信息。
  • -i CHANGELOG.md:指定 changelog 文件的路径和文件名。
  • -s -r 0:对现有 changelog 做更新时,指定从 0.0.0 开始计数。

commit message

在使用 @nodepack/conventional-changelog 前,需要遵循 Conventional Commits specification 规范提交信息。该规范的格式为:

其中,<type> 为必需,用于描述提交的类型。其余部分为可选项。

常见的 <type> 如下:

  • feat: 新功能;
  • fix: 修复 bug;
  • chore: 修改构建流程或辅助工具;
  • docs: 纯文档修改;
  • style: CSS、建构或格式等样式调整;
  • refactor: 重构代码;
  • perf: 性能优化;
  • test: 添加或修正测试。

具体可参考 官方文档

husky

我们还可以通过 husky 自动化在每次提交时验证提交信息是否符合规范。husky 需要在本地安装 Git 才能使用。按照以下步骤进行配置:

  1. 使用 npm 或 yarn 安装 husky。
  1. 在 package.json 中添加以下配置:
  1. 安装 commitlint
  1. 在项目根目录下创建 .commitlintrc.js,内容如下:

这样就完成了 husky 和 commitlint 的配置。在每次提交时,commitlint 会对提交信息进行验证。

使用

在完成配置后,即可使用以下命令自动生成 changelog。

执行后,会自动生成 CHANGELOG.md,如下所示:

-- -------------------- ---- -------
- ---------

-- ----- ------------

--- --------

- ----- ---------- ---- -- - --- ------- ----------------------------------------------------------------------------------------------------

-- ----- ------------

--- --------

- ----- ------- ---------- ---- -- ------- ------- ----------------------------------------------------------------------------------------------------

--- --- -----

- ----- ------ ---- -- - ------ ----------------------------------------------------------------------------------------------------

CHANGELOG.md 列出了项目中的版本归档记录。每个版本修订信息都有一个格式化的时间戳,一个相应的版本号和以下条目:

  • Features:新功能;
  • Bug Fixes:修复 bug。

总结

使用 @nodepack/conventional-changelog 自动化生成 changelog,简化了繁琐重复的工作,遵循 Conventional Commits specification,规范提交信息,使版本控制和 changelog 更有利于团队开发和维护。通过 husky 和 commitlint,可以自动化在每次提交时验证提交信息是否符合规范。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600671cd30d0927023822918

纠错
反馈