前言
在日常开发中,版本控制非常重要。Git 提供了一套完善的版本控制机制,而作为项目协作的一种简便规范,我们通常会在 Git 提交时添加 commit message,其实这个 commit message 是有一系列互相关联的规范的。
为了让所有参与协作的人员的提交行为更加协同一致,我们需要引入一种规范化工具——lint,而为了方便前端团队使用,前端团队常常选择使用一个叫做 commitlint 的 npm 工具。
介绍
commitlint 是一个可以帮助我们规范提交信息的库,它可以检查提交信息长度、是否有空格、格式等等。同时提供了一些预设的规则如 Angular、eslint、conventional 等,也支持自定义规则。
@kazanexpress/frontend-commitlint 是针对前端开发的一款 commitlint 规则库。它提供了一些基于约定俗成的前端开发的规范、强制检查格式错误并给出友好的提示。用它来规范 commit message,可让我们的版本控制更加有条不紊。
安装
我们可以在终端或者命令行窗口中输入以下命令来安装 @kazanexpress/frontend-commitlint:
npm install --save-dev @kazanexpress/frontend-commitlint
配置
安装好之后,我们需要在项目根目录下添加 commitlint 配置文件:commitlint.config.js
module.exports = { extends: ['@kazanexpress/frontend-commitlint'], rules: { // additional rules if necessary } }
可以通过 rules 来添加自定义规则,也可以通过 extends 来使用预设规则。需要注意的是,当 rules 和 extends 冲突时,rules 的优先级高于 extends,将会使用 rules 定义的规则。
如果需要针对某些文件夹或文件不进行规则的校验,可以使用 .commitlintrc.js
文件并设置相应的 ignores。
使用
在提交代码之前,您必须通过 commitlint 基于预设的规则进行提交信息的格式校验。我们可以通过以下命令在终端中运行 commitlint:
npx commitlint -e $GIT_PARAMS
在提交时,commitlint 将通过 GIT_PARAMS 获取要提交的 commit message,然后在控制台输出相应的错误信息。
除了手动运行外,我们也可以将它加入到 Git hook,让它进行自动校验。
在 package.json
中添加以下代码:
{ "husky": { "hooks": { "commit-msg": "npx commitlint -E HUSKY_GIT_PARAMS" } } }
在安装了 husky 之后,Git commit 的时候将会自动启动 commitlint,并进行验证,只有通过验证,才能 commit 成功。
示例
以 type(scope?): subject
为规范的提交信息:
- feat(index):添加图片预览功能
- fix(api):修复后端 API 接口逻辑问题
- docs(readme):更新 README.md
- refactor(code):重构代码结构
使用 @kazanexpress/frontend-commitlint,会强制实施这个规范,还可以定制规则、以及套用其他规范。例如,我们可以通过以下命令导出内置的规则:
npx commitlint --show-config
得到的规则如下:
-- -------------------- ---- ------- - -------- - --------------------------------- -- ------ - -------------------- --- --------- ---- -- -- ------ ---- -------------- --- --------- ----------------- -- --------------- ------------ --- --------- -------- ------ ------- -------- ----------- ------- -------- ----------- -- -- ---- --- ------------ --- --------- ------------- -- -------- ------------- --- --------- -- ----- ------------- --- --------- --------- ------- --------- -- -- ----- --- ------------- --- --------- ------------- -- -------- --------------- --- --------- ----------------- -- --------------- ---------------- --- -------- -- ----- - -
总结
使用 commitlint 可以使项目中的提交信息更加规范,提高 Git 的使用体验。@kazanexpress/frontend-commitlint 又是具有针对性的前端开发规范,让我们的前端协作能够更加有条不紊。希望本文介绍的配置和使用示例对您有所帮助,好的规范可以提升我们项目的成功率,感谢您的阅读!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/kazanexpress-frontend-commitlint