使用 Husky 进行 Git 提交规范检查

Mar 25, 2026 · 1427 字

Husky 是一个 Git hooks 工具,可以帮助我们在提交代码之前运行一些脚本来检查代码质量、规范提交信息等。

# use npm
npm install --save-dev husky
npx husky install

# use pnpm
pnpm add --save-dev husky
pnpm exec husky init

默认情况下 .husky/pre-commit 里会自带一行 npm test 或者 pnpm test,如果你不需要在提交前运行测试,可以删除这行。

可用的钩子列表可用参考 Git 文档,我们常用的主要有:

  • pre-commit:在提交之前运行,可以用来检查代码质量、运行测试等。
  • commit-msg:在提交信息编辑完成后运行,可以用来检查提交信息的规范性。

commitlint

如果需要对提交信息进行规范检查,可以安装 commitlint

# use npm
npm install -D @commitlint/cli @commitlint/config-conventional
echo "export default { extends: ['@commitlint/config-conventional'] };" > commitlint.config.js
echo "npx --no -- commitlint --edit \$1" > .husky/commit-msg

# use pnpm
pnpm add -D @commitlint/cli @commitlint/config-conventional
echo "export default { extends: ['@commitlint/config-conventional'] };" > commitlint.config.js
echo "pnpm dlx commitlint --edit \$1" > .husky/commit-msg

常见问题

Please add rules to your commitlint.config.js

如果明明已经添加了 commitlint.config.js,但在提交时仍然提示 Please add rules to your commitlint.config.js,可能是因为 commitlint 没有正确加载配置文件,通常是模块解析的问题。可以尝试以下解决方案:

  • commitlint.config.js 的内容改为 CommonJS 模块格式:
    module.exports = { extends: ["@commitlint/config-conventional"] };
  • 确保 package.json 中设置了 "type": "module"

参考文档

粤ICP备2025414119号 粤公网安备44030002006951号

© 2026 Saurlax · Powered by Astro