切换主题
Husky 入门指南
字数
514 字
阅读时间
3 分钟
什么是 Husky?
Husky 是一个流行的 Git hooks 工具,它可以帮助我们在 Git 事件(如 commit、push)触发时自动运行一些脚本。这对于确保代码质量、运行测试、代码格式化等任务非常有用。
基础安装步骤
- 首先安装 Husky:
bash
npm install husky --save-dev
- 初始化 Husky:
bash
npx husky install
- 修改 package.json,添加 prepare 脚本:
json
{
"scripts": {
"prepare": "husky install"
}
}
常用配置示例
添加 pre-commit hook
这个例子展示如何在每次提交前运行代码检查:
bash
npx husky add .husky/pre-commit "npm run lint"
这将创建一个 .husky/pre-commit
文件:
bash:.husky/pre-commit
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
npm run lint
添加 commit-msg hook
用于检查提交信息格式:
bash
npx husky add .husky/commit-msg 'npx --no -- commitlint --edit ${1}'
常见使用场景
- 代码检查:
json:package.json
{
"scripts": {
"lint": "eslint .",
"prepare": "husky install"
}
}
- 结合 lint-staged 使用:
bash
npm install --save-dev lint-staged
json:package.json
{
"lint-staged": {
"*.{js,jsx,ts,tsx}": [
"eslint --fix",
"prettier --write"
],
"*.{json,md}": [
"prettier --write"
]
}
}
bash:.husky/pre-commit
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
npx lint-staged
注意事项
.husky
目录需要提交到代码仓库- 如果 hook 脚本执行失败(返回非0状态码),Git 操作将被中止
- 可以使用
git commit --no-verify
跳过 hook 检查(不推荐)
常见问题解决
- 权限问题: 如果遇到权限错误,执行:
bash
chmod ug+x .husky/*
chmod ug+x .git/hooks/*
- Windows 兼容性: 确保使用 Git Bash 而不是 CMD 或 PowerShell
最佳实践
- 保持 hook 脚本简单明了
- 使用 lint-staged 只检查修改的文件
- 在 CI/CD 环境中也执行相同的检查
- 团队统一配置,确保所有成员使用相同的规则
这样的配置可以帮助团队:
- 保持代码风格一致
- 避免提交有问题的代码
- 自动化代码质量控制
- 减少代码审查的工作量