前言
在开发者团队里,协作开发是必不可少的,而协作开发中 commit message 的规范性显得尤为重要。在这里,我将为大家介绍一个 npm 包 @commitlint/lint,它能够帮助我们验证 commit message 是否符合规范,提高开发协作的效率。
什么是 @commitlint/lint
@commitlint/lint 是一个基于 commit message 的规范性检查工具,它能够帮助我们验证 commit message 是否符合我们定义的规范。通过使用它,我们能够保证所有的 commit message 都是符合规范的,从而提高团队的协作效率。
安装 @commitlint/lint
在使用 @commitlint/lint 之前,我们需要先进行安装。你可以使用 npm 或者 yarn 进行安装:
npm install --save-dev @commitlint/lint
或者
yarn add --dev @commitlint/lint
配置 @commitlint/lint
在安装好 @commitlint/lint 之后,我们需要对其进行配置。配置方式有两种:使用配置文件和使用配置对象。
配置文件
使用配置文件可以将我们的配置信息统一管理,便于维护。我们只需要在项目根目录下创建一个 commitlint.config.js 文件,在文件中配置相应的规则即可。
module.exports = { extends: ['@commitlint/config-conventional'], };
在这个配置文件中,我们使用了 @commitlint/config-conventional,它是一个默认的约定式配置文件,包含了常用的提交规范。除此之外,我们还可以自定义各种规则,如提交类型、范围、主题等。
配置对象
使用配置对象可以更加精细地配置我们的规则,但是它在多项目中编写时不是很方便。我们可以通过以下方式进行配置:
const { lint } = require('@commitlint/lint'); lint('fix: hello world', { extends: ['@commitlint/config-conventional'], }).then(report => { console.log(report); });
上面是一个使用配置对象的简单示例,我们利用 @commitlint/lint 的 lint 方法传入我们需要检查的 commit message 和规则配置,最终会返回一个结果对象 report,其中包含了检查结果和详细的错误信息。
以上是对 @commitlint/lint 的基本配置,接下来将介绍一些更深入的用法。
自定义规则
除了使用默认规则外,我们也可以自定义规则。下面我们将以自定义 header 为例,让大家更好地理解 @commitlint/lint 的用法。
单条规则
我们可以通过写函数的方式自定义规则,以下是一个自定义 header 规则的示例:
-- -------------------- ---- ------- -------------- - - ------ - -------------------- -------- ----------- ------- -- - ----- --------- - --- ----- ------ - ------------- ------ ------------- -- --------- - ------ - - ------ ------- ---- -- -- ---- ---- ------------ ----------- ------- ------ -- ------------------ -- -- -- --
以上代码中,我们通过 rules 对象的键值来添加我们的规则,其中 header-max-length 是规则的名称,后面跟着一个函数作为规则的具体实现。函数接受 3 个参数,分别为可选的规则等级、可选的规则适用范围和需要验证的值。在这个示例中,我们将 header 的最大长度限制为 20,如果 header 的长度超过了 20,则返回验证失败的信息。
多条规则
如果需要添加多个自定义规则,我们可以创建多个函数并将它们合并到一个对象中:
-- -------------------- ---- ------- ----- --------------- - -------- ----------- ------- -- - ----- --------- - --- ----- ------ - ------------- ------ ------------- -- --------- - ------ - - ------ ------- ---- -- -- ---- ---- ------------ ----------- ------- ------ -- ------------------ -- -- ----- -------------- - -------- ----------- ------- -- - ------ -------------------------- - ------ - ------- ------- ---- --- ---- - -------- -- -------------- - - ------ - -------------------- ---------------- ------------------- --------------- -- --
现在我们创建了两个函数,分别验证 header 的最大长度和是否以冒号结尾,然后我们将它们绑定到 rules 对象中的键值中,这样我们就可以同时使用多个规则来检查我们的 commit message。
总结
在本文中,我们介绍了 npm 包 @commitlint/lint 的使用方法,从安装到配置再到自定义规则都进行了详细的介绍。通过它,我们能够有效地提高开发协作效率,确保 commit message 的规范性。如果您感到本文内容还不够深入,建议您去了解官方文档,继续深入学习。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/94233