setup-pre-commit
在当前仓库中设置 Husky pre-commit 钩子,配合 lint-staged(Prettier)、类型检查和测试。当用户希望添加 pre-commit 钩子、设置 Husky、配置 lint-staged,或添加提交时的格式化/类
技能说明mattpocock/skills
在当前仓库中设置 Husky pre-commit 钩子,配合 lint-staged(Prettier)、类型检查和测试。当用户希望添加 pre-commit 钩子、设置 Husky、配置 lint-staged,或添加提交时的格式化/类型检查/测试时使用。
技能简介
setup-pre-commit 是一个在现有仓库中快速配置 Git pre-commit 钩子的技能。它通过 Husky 和 lint-staged 在每次提交前自动运行 Prettier 格式化、类型检查和测试,帮助你在代码提交阶段自动拦截格式问题、类型错误和测试失败,提升代码质量。
使用场景
- 为新项目添加 pre-commit 钩子,统一提交流程
- 为已有仓库配置 Husky 和 lint-staged,实现提交前自动格式化
- 需要让提交时自动运行 typecheck 和 test 脚本
- 希望补充缺失的 Prettier 配置文件
- 团队协作时统一代码风格和检查规范,减少人工审核负担
使用方法
本技能作为 CLI Agent Skill 使用,需要先安装到你的 Agent 环境中(如 Claude Code 等支持 Skills 的 CLI 工具)。
核心流程概要:
1. 检测包管理器:根据项目中的 package-lock.json(npm)、pnpm-lock.yaml(pnpm)、yarn.lock(yarn)等自动识别,默认使用 npm。
2. 安装依赖(作为 devDependencies):
npm install -D husky lint-staged prettier
3. 初始化 Husky:
npx husky init
这会创建 .husky/ 目录并在 package.json 中添加 prepare: "husky" 脚本。
4. 创建 .husky/pre-commit:
npx lint-staged
npm run typecheck
npm run test
如果 project 没有 typecheck 或 test 脚本,自动省略对应行并告知用户。
5. 创建 .lintstagedrc:
{
"*": "prettier --ignore-unknown --write"
}
6. 创建 .prettierrc(仅当不存在时):使用 2 空格缩进、单引号关闭、es5 尾逗号等默认配置。
7. 验证:确认 .husky/pre-commit 存在且可执行、.lintstagedrc 存在、prepare 脚本正确,运行 npx lint-staged 测试。
8. 提交:将所有变更文件提交,message 建议为 Add pre-commit hooks (husky + lint-staged + prettier),以此作为钩子的烟雾测试。
注意事项
- Husky v9+ 的钩子文件不需要 shebang 行
prettier --ignore-unknown会跳过 Prettier 无法解析的文件(如图片等)- pre-commit 钩子先运行 lint-staged(快、只处理暂存文件),再执行完整的 typecheck 和 test