设置 Pre-Commit 钩子
SkillDev toolsSets up a git pre-commit hook that formats code with Prettier and runs type checks and tests before each commit.
Available today. Use it from your connected AI after setup.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the 设置 Pre-Commit 钩子 skill
About this skill
Set up a Husky pre-commit hook in the current repository, integrating lint-staged (Prettier), type checking, and tests. Use when the user wants to add a pre-commit hook, set up Husky, configure lint-staged, or add format/type-check/test on commit.
What this skill tells your AI
The instructions your AI receives, as published by devcxl/mattpocock-skills-zh in skills/misc/setup-pre-commit/SKILL.md and read by ahel’s review.
将要设置的内容
- Husky pre-commit 钩子
- lint-staged 对所有暂存文件运行 Prettier
- Prettier 配置(如果缺失)
- typecheck 和 test 脚本在 pre-commit 钩子中运行
步骤
1. 检测包管理器
检查 package-lock.json(npm)、pnpm-lock.yaml(pnpm)、yarn.lock(yarn)、bun.lockb(bun)。使用已存在的那个。如果不确定,默认使用 npm。
2. 安装依赖
安装为 devDependencies:
husky lint-staged prettier
3. 初始化 Husky
npx husky init
这会创建 .husky/ 目录并在 package.json 中添加 prepare: "husky"。
4. 创建 .husky/pre-commit
写入以下内容(Husky v9+ 不需要 shebang):
npx lint-staged
npm run typecheck
npm run test
适配:将 npm 替换为检测到的包管理器。如果仓库的 package.json 中没有 typecheck 或 test 脚本,则省略对应行并告知用户。
5. 创建 .lintstagedrc
{
"*": "prettier --ignore-unknown --write"
}
6. 创建 .prettierrc(如果缺失)
仅当不存在 Prettier 配置时才创建。使用以下默认值:
{
"useTabs": false,
"tabWidth": 2,
"printWidth": 80,
"singleQuote": false,
"trailingComma": "es5",
"semi": true,
"arrowParens": "always"
}
7. 验证
-
.husky/pre-commit存在且可执行 -
.lintstagedrc存在 - package.json 中的
prepare脚本为"husky" -
prettier配置存在 - 运行
npx lint-staged验证其是否正常工作
8. 提交
暂存所有更改/创建的文件,并使用消息提交:Add pre-commit hooks (husky + lint-staged + prettier)
这将触发新的 pre-commit 钩子执行:是一个很好的冒烟测试,验证一切正常。
注意事项
- Husky v9+ 不需要在钩子文件中加 shebang
prettier --ignore-unknown会跳过 Prettier 无法解析的文件(如图片等)- pre-commit 钩子先运行 lint-staged(快速,仅处理暂存文件),然后运行完整的 typecheck 和 test
Signals
- GitHub stars
- 406
- Forks
- 33
- Last commit
- Sep 2026
Advanced
- Item type
- skill
- Key
setup-pre-commit-devcxl- Source
- github.com/devcxl/mattpocock-skills-zh