前言
在现代前端开发中,代码的提交变得越来越频繁而且大部分时间是团队合作完成的。在这样的环境下,维护良好的 commit 记录变得非常重要,因为它关系到代码质量、开发进展和团队协作等方面。我们经常听到一句话:“好的代码就是自注释的代码”,但在实际开发中,我们会发现有很多开发者并不会写出优雅的 commit 记录。因此,本文要介绍的是 @fe2345/inspect-commit 这个 npm 包的使用教程,它可以帮助我们规范化和优化 commit 记录,从而提高代码质量和开发效率。
前置知识要求
在开始使用 @fe2345/inspect-commit 之前,请确保你已经熟悉以下技术栈:
- Git
- JavaScript/TypeScript
安装和初始化
首先,我们需要在项目中安装 @fe2345/inspect-commit 这个 npm 包:
npm install --save-dev @fe2345/inspect-commit
安装完成后,我们需要在项目根目录下创建一个名为 .inspectrc.json
的文件,并配置以下参数:
-- -------------------- ---- ------- - -------- - ------------------ --- --------- ----- ------------------ --- --------- ---- ------------- --- ---------- -------------------- --- --------- ---- -------------------- --- --------- ---- ------------------------- --- --------- ---------------- --- --------- ------------------ --- ---------- ---------------------- --- ---------- -------------------------- --- ---------- ------------- --- -------- - -
rules
字段定义了一些规则,它们用于检查我们的 commit 记录是否符合规范。接下来我们会一一解释这些规则。
规则说明
body-max-length
规则描述:规定 commit message 的 body 部分的最大长度,并且不允许超过此长度。
参数说明:
1
:错误等级,1 代表错误级别"always"
:表示必须遵守该规则100
:表示规定的最大长度为 100
示例:
假设我们的 Git 仓库提交信息如下:
feat: 增加用户登录功能 为用户登录添加了用户名和密码框,点击登录按钮后会将用户名和密码发送给后端进行验证并返回结果。如果验证成功,则在前端保存登录状态,并跳转到用户主页。 修复 #1234
如果该规则被 violated,那么就会抛出如下错误信息:
The commit message body exceeds the maximum length (100)
body-min-length
规则描述:规定 commit message 的 body 部分的最小长度,并且不允许小于此长度。
参数说明:
1
:错误等级,1 代表错误级别"always"
:表示必须遵守该规则10
:表示规定的最小长度为 10
示例:
假设我们的 Git 仓库提交信息如下:
feat: 增加用户登录功能 修复 #1234
如果该规则被 violated,那么就会抛出如下错误信息:
The commit message body is too short (minimum: 10 characters)
duplicated
规则描述:规定不允许出现重复的 commit 记录。
参数说明:
1
:错误等级,1 代表错误级别"always"
:表示必须遵守该规则
示例:
假设我们的 Git 仓库提交信息如下:
-- -------------------- ---- ------- ----- -------- ------------------------------------------------------------------------- -- ----- ----- -------- --------------------------------------------------------------------------- -- -----
如果该规则被 violated,那么就会抛出如下错误信息:
Duplicated commit message found
header-max-length
规则描述:规定 commit message 的 header 部分的最大长度,并且不允许超过此长度。
参数说明:
1
:错误等级,1 代表错误级别"always"
:表示必须遵守该规则72
:表示规定的最大长度为 72
示例:
假设我们的 Git 仓库提交信息如下:
feat: 增加用户登录功能 为用户登录添加了用户名和密码框,点击登录按钮后会将用户名和密码发送给后端进行验证并返回结果。如果验证成功,则在前端保存登录状态,并跳转到用户主页。 修复 #1234
如果该规则被 violated,那么就会抛出如下错误信息:
The commit message header exceeds the maximum length (72)
header-min-length
规则描述:规定 commit message 的 header 部分的最小长度,并且不允许小于此长度。
参数说明:
1
:错误等级,1 代表错误级别"always"
:表示必须遵守该规则10
:表示规定的最小长度为 10
示例:
假设我们的 Git 仓库提交信息如下:
修复 #1234
如果该规则被 violated,那么就会抛出如下错误信息:
The commit message header is too short (minimum: 10 characters)
must-have-issue-number
规则描述:规定 commit message 的 header 部分必须包含 issue 编号。
参数说明:
1
:错误等级,1 代表错误级别"never"
:表示不允许该规则
示例:
假设我们的 Git 仓库提交信息如下:
feat: 增加用户登录功能 为用户登录添加了用户名和密码框,点击登录按钮后会将用户名和密码发送给后端进行验证并返回结果。如果验证成功,则在前端保存登录状态,并跳转到用户主页。
如果该规则被 violated,那么就会抛出如下错误信息:
The commit message header must have issue number (format: #[0-9]+)
no-blank-body
规则描述:规定 commit message 的 body 部分不允许为空。
参数说明:
1
:错误等级,1 代表错误级别"never"
:表示不允许该规则
示例:
假设我们的 Git 仓库提交信息如下:
feat: 增加用户登录功能 修复 #1234
如果该规则被 violated,那么就会抛出如下错误信息:
The commit message body can not be blank
no-blank-header
规则描述:规定 commit message 的 header 部分不允许为空。
参数说明:
1
:错误等级,1 代表错误级别"always"
:表示必须遵守该规则
示例:
假设我们的 Git 仓库提交信息如下:
如果该规则被 violated,那么就会抛出如下错误信息:
The commit message header can not be blank
no-duplicate-header
规则描述:规定同一类型的 commit message 只能出现一次。
参数说明:
1
:错误等级,1 代表错误级别"always"
:表示必须遵守该规则
示例:
假设我们的 Git 仓库提交信息如下:
-- -------------------- ---- ------- ----- -------- ------------------------------------------------------------------------- ----- -------- --------------------------------------------------------------------------- -- -----
如果该规则被 violated,那么就会抛出如下错误信息:
Duplicated commit header found
no-missing-issue-number
规则描述:规定 commit message 的 header 部分必须包含 issue 编号。
参数说明:
1
:错误等级,1 代表错误级别"always"
:表示必须遵守该规则
示例:
假设我们的 Git 仓库提交信息如下:
feat: 增加用户登录功能 为用户登录添加了用户名和密码框,点击登录按钮后会将用户名和密码发送给后端进行验证并返回结果。如果验证成功,则在前端保存登录状态,并跳转到用户主页。
如果该规则被 violated,那么就会抛出如下错误信息:
The commit message header must have issue number (format: #[0-9]+)
scope-enum
规则描述:规定 commit message 中的 scope 必须符合预设的范围。
参数说明:
1
:错误等级,1 代表错误级别"never"
:表示不允许该规则
示例:
假设我们的 Git 仓库提交信息如下:
feat(login): 增加用户登录功能 为用户登录添加了用户名和密码框,点击登录按钮后会将用户名和密码发送给后端进行验证并返回结果。如果验证成功,则在前端保存登录状态,并跳转到用户主页。 修复 #1234
如果该规则被 violated,那么就会抛出如下错误信息:
Invalid commit message scope
实例
下面是一个完整的示例,详细演示了如何使用 @fe2345/inspect-commit 这个 npm 包:
-- -------------------- ---- ------- ----- ------------- - --------------------------------- ----- ---- - --------------- ----- ------ - - ----------- -------------------- ------------------ - ----- ------- - - - ------- ------ ---------- ----- ------------------------------------------------------------------------------ ------ -- - ------- ------ ---------- ----- -------------------------------------------------------------------------------- ------ -- - ------- ----- -------------- ----- -------------------------------------------------------- ------ - - ----- ------------- - --- --------------------- --- ---- ------ -- -------- - --- - ----------------------------- ------------------- ------------------ ------ --- ------------ - ----- --- - ------------------- ------------------ ------ --- ---------- ---- ----- -------- -------------- - -
运行该代码,输出结果如下:
commit "feat: 增加用户登录功能" passed the inspection commit "feat: 增加用户注册功能" failed the inspection with error message: The commit message header must have issue number (format: #[0-9]+) commit "fix: 修复用户头像地址显示问题" passed the inspection
从输出中可以看出,第二个 commit 记录的 header 参数不符合要求,因此检查不通过。
结语
本文介绍了如何使用 @fe2345/inspect-commit 这个 npm 包来规范化和优化 commit 记录,它包含了多个规则,可以对 commit 记录进行全面的检查。当然,在实际开发中,我们也可以根据实际情况调整这些规则,以便更好地适应我们的开发团队和项目。如果我们能够在开发中加强对 commit 记录的管理,就能够更好地掌控代码质量和开发进度,推动团队更好地合作和协商。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066b5551ab1864dac66a2d