Skip to content

Husky 入门指南

字数
514 字
阅读时间
3 分钟

什么是 Husky?

Husky 是一个流行的 Git hooks 工具,它可以帮助我们在 Git 事件(如 commit、push)触发时自动运行一些脚本。这对于确保代码质量、运行测试、代码格式化等任务非常有用。

基础安装步骤

  1. 首先安装 Husky:
bash
npm install husky --save-dev
  1. 初始化 Husky:
bash
npx husky install
  1. 修改 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}'

常见使用场景

  1. 代码检查
json:package.json
{
  "scripts": {
    "lint": "eslint .",
    "prepare": "husky install"
  }
}
  1. 结合 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

注意事项

  1. .husky 目录需要提交到代码仓库
  2. 如果 hook 脚本执行失败(返回非0状态码),Git 操作将被中止
  3. 可以使用 git commit --no-verify 跳过 hook 检查(不推荐)

常见问题解决

  1. 权限问题: 如果遇到权限错误,执行:
bash
chmod ug+x .husky/*
chmod ug+x .git/hooks/*
  1. Windows 兼容性: 确保使用 Git Bash 而不是 CMD 或 PowerShell

最佳实践

  1. 保持 hook 脚本简单明了
  2. 使用 lint-staged 只检查修改的文件
  3. 在 CI/CD 环境中也执行相同的检查
  4. 团队统一配置,确保所有成员使用相同的规则

这样的配置可以帮助团队:

  • 保持代码风格一致
  • 避免提交有问题的代码
  • 自动化代码质量控制
  • 减少代码审查的工作量

贡献者

页面历史