前言
上一篇文章介绍了通过eslint与prettier配合,实现代码质量与风格的控制,但需要vscode配置的配合才可生效,不具备强制性。本文将继续深入,通过husky、commmitlint、lint-staged的使用,保证远程仓库代码的质量与规范。
- husky,一款管理
git hooks
的工具 - commitlint,一款
git commit
提交规范检验工具 - lint-staged,一个对
git暂存区
代码进行处理的工具

husky
它将在我们提交代码时触发不同的钩子,执行不同脚本,帮忙我们自动化的处理一些任务,比如执行 eslint
命令等。
1. 安装
bash
npm install husky -D
2. 配置
-
v9版本
-
执行配置脚本
bashnpx husky init
-
添加钩子
bashecho "npm test" > .husky/pre-commit
-
-
v9之前版本
-
package scripts脚本添加prepare钩子,执行husky install
bashnpm pkg set scripts.prepare="husky install"
-
执行配置脚本,自动创建 .husky/_git钩子相关文件
arduinonpm run prepare
-
添加pre-commit 钩子,脚本为
npm test
sqlnpx husky add .husky/pre-commit "npm test"
-
版本差异可参照官方迁移教程
commitlint
commitlint 是当前使用最广泛的git提交规范检验工具,能够较好的帮助我们在项目开发中,对提交信息的 message
规范进行校验。
1. 安装
bash
npm install -D commitlint @commitlint/cli @commitlint/config-conventional
- @commitlint/config-conventional 是基于
conventional commits
规范的配置文件。 - @commitlint/cli 是
commitlint
工具的核心。
2. 配置
增加 .commitlintrc.js
配置文件
js
module.exports = {
extends: ['@commitlint/config-conventional']
};
3. 结合husky,实现git commit规范校验
设置 commit-msg
hook
bash
echo "npx --no-install commitlint -e $HUSKY_GIT_PARAMS" > .husky/commit-msg
lint-stated
lint-staged
工具可实现,只针对提交的代码文件进行检查处理。
1. 安装
bash
npm install lint-staged -D
2. 配置
在package.json文件中增加内容
json
{
"scripts": [
"lint-staged": "lint-staged"
],
"lint-staged": {
"*.{js,ts,jsx,tsx}": [
"eslint --fix"
]
},
}
3. 结合husky,实现对暂存区文件的校验
设置 pre-commit
hook
bash
echo "pnpm lint" > .husky/pre-commit
总结
- husky用来管理git hooks,以此来增强git功能
- commitlint结合commit-msg钩子,实现提交规范的校验
- lint-staged结合pre-commit钩子,实现对暂存区文件的校验