Husky 是一个 NPM 包,用更好的使用 Git 钩子来管理项目。通常它被用于项目的代码提交前的各类规范的检查。
安装和配置
安装 Husky
1
npm install husky --save-dev
启用 Husky
1
npx husky install
在 package.json 中添加 prepare 钩子,用于在
npm install
之后自动启用 Husky1
npm set-script prepare "husky install"
package.json
文件将会添加一个prepare
script:1
2
3
4
5{
"scripts": {
"prepare": "husky install"
}
}
创建钩子
1 | npx husky add .husky/pre-commit "npm run lint" |
配合 lint-staged 使用
lint-staged 是一个在提交代码前,只检查提交的文件的工具。它可以配合 Husky 使用,只检查提交的文件,而不是整个项目。
在项目中安装
lint-staged
和eslint
(或其他你需要的规范检查工具)1
npm install lint-staged eslint --save-dev
在
package.json
中添加lint-staged
配置1
2
3
4
5{
"lint-staged": {
"*.{js,jsx,ts,tsx}": "eslint --fix"
}
}创建使用
lint-staged
的钩子1
npx husky add .husky/pre-commit "npx lint-staged"
配合 commitlint 使用
commitlint 是一个用于检查提交信息是否符合规范的工具。它可以配合 Husky 使用,检查提交信息是否符合规范。
在项目中安装
@commitlint/cli
和@commitlint/config-conventional
1
npm install @commitlint/cli @commitlint/config-conventional --save-dev
在项目根目录创建
commitlint.config.js
文件1
module.exports = { extends: ["@commitlint/config-conventional"] };
创建使用
commitlint
的钩子1
npx husky add .husky/commit-msg "npx --no-install commitlint --edit $1"
结语
Husky 是一个非常好用的工具,可以帮助我们更好的管理项目的代码提交规范。用来解决因个人编码风格差异引发的潜在冲突,提升团队协作效率。