介绍
在前端开发过程中,我们经常使用Git进行版本控制。为了规范我们的commit message,我们可以使用@commitlint/prompt-cli这个npm包。该包提供了一个命令行交互工具,用于提示我们编写符合规范的commit message。
安装
我们可以使用npm全局安装@commitlint/prompt-cli:
npm install -g @commitlint/prompt-cli
安装完成后,我们就可以在命令行中使用commitlint
命令。
使用方法
初始化
首先,我们需要在项目中初始化@commitlint/prompt-cli。在项目根目录下,可以通过以下命令进行初始化:
commitlint --init
该命令会在项目中生成一个名为.commitlintrc.json
的配置文件。该配置文件包含了commit message的一些规范配置项。
检测commit message
在使用git提交代码时,我们可以在提交命令后加上-m
参数来输入commit message。例如:
git commit -m "Add feature A"
为了检测commit message是否符合规范,我们可以使用@commitlint/prompt-cli。在输入git commit
命令后,该插件会提示我们编写commit message,并检测该message是否符合我们所定义的规范。
配置规范
我们可以通过.commitlintrc.json
配置文件来定义commit message的规范。以下是一个示例配置文件:
-- -------------------- ---- ------- - ---------- ------------------------------------ -------- - ------------ - -- --------- -------- ------ ------- -------- ----------- ------- -------- --------- -- -------------------- --- --------- --------------- ---- -------------------- --- --------- --- - -
在该示例中,我们引入了@commitlint/config-conventional
规范,该规范定义了一些常用的commit message类型和格式。我们还可以在该配置文件中自定义一些规则,例如:
type-enum
:定义commit message的类型必须是哪些枚举值之一。在示例中,定义了8种类型:feat
、fix
、docs
、style
、refactor
、test
、chore
、revert
。subject-full-stop
:定义commit message的主题不能以句号结尾。header-max-length
:定义commit message的标题长度不得超过72个字符。
示例代码
以下是一个包含config配置文件的项目目录结构:
| |--.commitlintrc.json |--package.json |--src/ | |--index.js | |--...
其中,.commitlintrc.json
文件内容如下:
-- -------------------- ---- ------- - ---------- ------------------------------------ -------- - ------------ - -- --------- -------- ------ ------- -------- ----------- ------- -------- --------- -- -------------------- --- --------- --------------- ---- -------------------- --- --------- --- - -
在项目中输入以下命令:
git add . git commit
该命令会提示我们输入commit message,并检测该message是否符合规范。在输入完commit message后,我们可以通过以下命令查看该commit message是否符合我们所定义的规范:
commitlint --from HEAD~1
该命令会输出以下信息:
husky > commit-msg (node ..., stdin: ...) ⧗ input: Add feature A ✖ subject may not be empty [subject-empty] ✖ type may not be empty [type-empty] ✔ Found 2 problems, 0 warnings ⓘ Get help: ...
我们可以看到,在我们的commit message中,主题和类型都不能为空。如果我们按照规范再重新输入符合规范的commit message,则该命令会返回一个空字符串。
总结
在本文中,我们介绍了npm包@commitlint/prompt-cli的使用方法和配置规范。通过使用该插件,我们可以规范化我们的commit message,从而更好地进行Git版本控制。同时,该插件也可以帮助我们保证代码提交的风格一致性,在多人协作开发时尤为重要。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/86905