介绍
当commit或push前你可以使用Husky来检查提交信息、运行测试、检查代码等。Husky 支持所有 Git hooks。
开始
新建项目
mkdir husky-learn
cd husky-learn
git init
npm init -y
自动(推荐)
husky-init 是一个一次性命令,用于使用 husky 快速初始化项目。
npx husky-init && npm install
它会:
- 添加
preparescript 到package.json中
// package.json
"scripts": {
"prepare": "husky install"
}
- 创建一个可以编辑的
pre-commit示例hook(它使得 npm test 将在提交时运行)
// .husky/pre-commit
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
npm test
- 配置Git hooks 路径
执行脚本:
git config core.hooksPath .husky,作用是将 Git Hooks 的文件夹修改成 .husky 文件夹,因此 ./husky/pre-commit 文件将会被当成 pre-commit hook,这样执行git commit将会触发 Git Hooks!
如果要添加其他的hook,使用 husky add,如
npx husky add .husky/commit-msg 'npx --no -- commitlint --edit "$1"'
手动
安装
- 安装 husky
npm install husky --save-dev
- 启用 Git hooks
npx husky install
创建 hook
向hook添加命令或创建新命令,使用 husky add <file> [cmd] (不要忘记在这之前执行 husky install)。
npx husky add .husky/pre-commit "npm test"
git add .husky/pre-commit
尝试进行提交
git commit -m "test"
如果 npm test 命令失败,你的提交将自动中止。
卸载
npm uninstall husky && git config --unset core.hooksPath