在现代的软件开发过程中,代码版本控制是一个重要的部分。随着项目的规模不断扩大,代码库中的提交也会越来越多,其中的信息管理变得越来越复杂,需要一些工具来帮助开发者。这就是 Commitlint 带来的便利,它是一个用于标准化 Git 提交信息的工具集合,可以让所有的提交信息符合指定格式,从而提高代码可读性、可维护性以及方便与同伴协作。
Commitlint 由许多不同的 npm 包构成,其中之一就是 @commitlint/utils。它提供了一些通用的工具函数和类型,可以帮助开发者编写符合 Commitlint 规范 的代码提交信息。
安装 @commitlint/utils
要使用 @commitlint/utils,首先确保你已经在本地安装了 Node.js 和 npm,然后通过运行以下命令将其安装到你的项目中:
npm install @commitlint/utils --save-dev
使用 @commitlint/utils
校验提交信息的符合度
@commitlint/utils 提供了一个 parse
函数,可以将一个提交信息字符串解析成一个对象,从而更方便地进行校验。使用 parse
函数,需要传入被解析的字符串:
const { parse } = require('@commitlint/utils'); const commitMsg = 'feat: 新增某个功能'; const parsedMsg = parse(commitMsg);
parsedMsg
变量将会得到一个对象,包含以下属性:
- header:提交信息的标题,即第一行(不含类型和作用域);
- type:提交类型,如
feat
、fix
等; - scope:该次提交涉及的范围;
- subject:任务的简短描述;
- body:提交信息中的详细说明;
- mention:提交信息中的署名。
如果解析失败,parse
函数将会返回 null
。
根据规范定义创建校验器
我们可以使用 lintRuleCreator
函数,基于指定的规范定义创建一个定制化规则的校验器。校验器接受一个 parsed
对象作为输入,返回 Boolean
类型的结果。
-- -------------------- ---- ------- ----- - --------------- - - ----------------------------- ----- ------------- - ------------------------ ----- - ----- ------ - ----- -- - ----- ------ - --------------------- ----- --- - ------ -- --- ------ ------ -- ---- --- -------------- - - ------ - -------------------- -------------- -- --
该示例中我们使用了 lintRuleCreator
来创建了一个基于提交信息标题长度的规范校验器,即要求标题长度不能超过 80 个字符。在这个示例中,我们通过返回一个 Boolean
类型的值来决定提交信息是否符合规范,但也可以返回一个自定义错误消息。
组合多个校验器
不同的开发者会有不同的需求,而 @commitlint/utils 提供了组合不同规范、不同定制化规则校验器的方法,来符合不同的需求。
-- -------------------- ---- ------- ----- - --------- - - ----------------------------- ----- ------------- - ------------------------ ----- - ----- ------ - ----- -- - ----- ------ - --------------------- ----- --- - ------ -- --- ------ ------ -- ---- --- ----- -------------- - ---------------- -------- ----- - ----- ------ - ----- -- - ----- ---------------- - ------------------------------- ------ ------------------------------------ -- -- -------------- - - ------ - -------------------- -------------- -------------------- --------------- -- ------------- - ----- --------------------------- ----------- - -- ---- ------ ------- -- -- -------- - - ------- ------------------------------------------- ------ - ------------- --- --------- ---- -- ------- ------------ --- --------- ---- -- ------- -- -- -- -- ----- --------- - ---------------------------------- ----- ------ - ----------------- -------- -- --------------------- - -- - ---------------------- -
通过在配置 rules
对象中定义校验器,我们可以将不同的定制化规则校验器在与内置规则校验器进行组合,创建一个个适合不同开发者、不同项目需求的统一校验器。
总结
@commitlint/utils 作为一个通用工具函数封装库,提供了一些有用的方法和类型定义,方便开发使用;而其模块可以根据项目需求组合使用,从而对接口数据的正确性进行严格的校验,提高软件开发过程中的代码质量。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/94243