前言
在开发过程中,提交代码是我们必须要做的事情。这些提交记录用来记录代码历史和维护一个清晰的代码库,但是如果每个人按照自己的喜好来写提交记录,那么阅读历史记录(Changelog)将会变得困难和无比繁琐。因此,存在一些规范化的提交记录的方式,这便是 “Commit message conventions”。 @commitlint/cli 就是其中一种工具。
@commitlint/cli 是一个使用 lint 规则来校验提交记录的命令行工具。它能够确保每个提交记录都遵循了固定的格式。它能够帮我们根据指定的规则,约束开发者在提交时的书写规范,使提交信息更加容易阅读和理解。
安装和使用
安装 @commitlint/cli:
npm install --save @commitlint/cli
安装对应的配置,默认的配置是 @commitlint/config-conventional:
npm install --save-dev @commitlint/config-conventional
配置 package.json
在 package.json 文件中,可以配置 commitlintConfig 属性以及相应的规则:
-- -------------------- ---- ------- - ------------- - ---------- ------------------------------------ -------- - ------------ - -- --------- - ------- ------ ------- -------- ----------- ------- -------- -------- - -- -------------------- --- --------- --------------- --- -------- - - -
其中:
extends 指定了我们使用的规则库。这个规则库是官方的 @commitlint/config-conventional。它是一个很流行的、标准的规则库(Commit 规范的首选库),其中规定了枚举了几种 Commit 类型和规则。
rules 指定了更严格的约束规则,例如,我们规定了必须包含以下类型之一:'feat'、'fix'、'docs'、'style'、'refactor'、'test'、'chore' 和 'revert'。它们是规范的 Commit 类型,其他类型不被允许提交。同时,我们还指定了 subject 不能以点结尾,subject 不应该首字母大写,并指定了相关的 severity(警告级别)。
使用 commitlint
安装完 @commitlint/cli 后,可以在项目根目录下执行以下命令进行校验规范:
echo 'your commit message' | commitlint
例如:
echo 'docs: update README.md' | commitlint
另外,为了方便起见,我们可以在 package.json 文件中添加一个 npm 脚本:
{ "scripts": { "commitmsg": "commitlint -E HUSKY_GIT_PARAMS" } }
这样在每一次提交时都会自动调用 commitlint 来进行校验规范。
示例
下面是一个样板的提交记录:
<type>(<scope>): <subject> <BLANK LINE> <body> <BLANK LINE> <footer>
其中各个字段的含义:
type:这个 commit 的类型,规定为下面之一:
- feat:新功能
- fix:修补 Bug
- docs:文档更新
- style:格式改变,例如对代码进行了格式化,修改了空格等方式。
- refactor:对现有的代码进行了重构,注意与修补 Bug 的区别。
- test:增加测试用例
- chore:对构建过程或辅助工具和库(如文档生成)的更改
- revert:撤销上一个提交。
scope:说明此次修改的关键字,例如:router、namespaces、components、docs 等。
subject:用于简短描述此次修改的内容。
body:主要描述此次修改的详细内容和原因。
footer:包含修订版本号和相关链接。
下面是一些示例:
-- -------------------- ---- ------- ----------------- --- --- --- -------------- --------- ------------- ------- ---------- --- ---- -- --------- ------------ ---- -------- --------------- -------- ------- -- -------- ------------- --- ----- --- --- ------
总结
@commitlint/cli 在团队开发中起到了很大作用,通过统一的规范对提交提交信息进行审核,提高了代码中可读性和可维护性,从而使得代码维护更加便捷。希望通过本篇文章的介绍,能够帮助大家更好的掌握并使用 @commitlint/cli 来规范提交记录。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/86903