在前端开发过程中,代码规范对于团队协作和维护代码的可读性和可维护性非常重要。而其中的一项重要规范就是 commit message 的格式。commitlint-config-imt 是一款可以帮助我们规范 commit message 的 npm 包,本文将介绍它的使用方法以及相关知识点。
什么是 commitlint-config-imt?
commitlint 是一款基于 Node.js 的命令行工具,可以帮助开发者对 commit message 的格式进行规范限制。而 commitlint-config-imt 就是一个针对 commit message 格式化限制的 npm 包,其规定了符合约定的 commit message 格式。
commitlint-config-imt 的配置规则,遵循的是 Conventional Commits 约定。它会使用正则表达式来匹配 commit message,并反馈是否符合规范。
commit message 规范
为了遵循 Commitlint 的规范,我们需要了解关于 Commit message 的约定,然后将这些约定用于我们的 Git commit message。
Conventional Commits 约定的格式为:
<type>[optional scope]: <description> [optional body] [optional footer(s)]
<type>
: 用于描述本次 commit 的类型,一般会是下列之一:- feat:新功能(feature)
- fix:修复 bug
- docs:文档更新
- style:代码样式调整
- refactor:代码重构
- perf:性能优化
- test:测试用例更新
- chore:构建过程或工具的变动
- revert:回退某个 commit
<scope>
: 本次 commit 的范围,一般会填写本次修改的模块或组件名称,可选。- 例如:
feat(login): 新增密码重置功能
- 例如:
<description>
: 本次 commit 的简短描述,一般不超过 50 个字符。[optional body]
: 本次 commit 的详细描述,可选。[optional footer(s)]
: 本次 commit 的变动类型,可选:- BREAKING CHANGE:用于描述破坏性修改或 API 变更。
例如:
feat: 新增登录功能 登录功能实现,包括登录页面以及登录接口。 BREAKING CHANGE: 新增了 LoginController 类。
规范的 commit message 可以帮助我们更好地追溯历史记录,让代码更易于维护和管理。
commitlint-config-imt 的使用方法
首先,需要全局安装 commitlint 和 @commitlint/config-conventional:
npm install -g @commitlint/cli @commitlint/config-conventional
然后安装 commitlint-config-imt:
npm install commitlint-config-imt -D
在项目根目录新建 .commitlintrc.js
配置文件,写入如下内容:
module.exports = { extends: ['imt'], };
由于 commitlint-config-imt 已经默认配置了 @commitlint/config-conventional,因此我们无需在配置文件中显式引用。
最后,在 package.json 文件中添加以下 script:
{ "scripts": { "commitmsg": "commitlint -E HUSKY_GIT_PARAMS" } }
在 Git 提交时启用 commitlint
我们可以通过工具 Husky 在 Git 提交时自动使用 commitlint 验证 commit message 的规范性。
首先,需要安装 husky:
npm install husky -D
然后在 package.json 内添加如下内容:
{ "husky": { "hooks": { "commit-msg": "npm run commitmsg" } } }
现在,每次 Git commit 时,都会自动使用 commitlint 验证 commit message。
给出最佳实践的例子
feat: 引入新的 localeProvider 组件 关联 #0001 - 新增了跨越宇宙的翻译功能 - 对 localeProvider 进行调整,使翻译密度更高 - 修复了展示文字的错位问题
以上是一个比较好的 commit message 的例子:打好了 type 和 scope,写了具体的描述,并且列出了本次修改和修复的内容。
小结
commitlint-config-imt 可以帮助我们规范 commit message 的格式,使团队间的沟通更加顺畅,减少不必要的沟通时间,让后续修改更加容易维护。
在使用 commitlint-config-imt 的时候,要记住遵循约定。对于 commit message,要精简明了,包含完整的信息,有助于其他开发者了解这次修改的动机。同时可以通过 Husky 的 Git 钩子来启动 commitlint,每次提交时自动验证 commit message 的规范性。
推荐阅读相关资料:
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066b4d51ab1864dac66813