SuperAPI AI 工具集

setup-pre-commit

编程与开发

查看项目

更新于 10-15 23:44

技能介绍

用途:在当前仓库中设置 Husky pre-commit 钩子,使提交前自动对暂存文件运行 Prettier,并执行类型检查与测试。

主要能力:安装 husky、lint-staged、prettier 作为 devDependencies;初始化 Husky;创建 .husky/pre-commit、.lintstagedrc,并在缺失时创建 .prettierrc;在钩子中运行 lint-staged、typecheck 和 test。

使用方式:先检测包管理器(依据 package-lock.json、pnpm-lock.yaml、yarn.lock、bun.lockb,无法判断时默认 npm)。安装依赖后运行 npx husky init,创建 .husky/pre-commit,内容为 npx lint-staged、npm run typecheck、npm run test(按检测到的包管理器替换 npm;若 package.json 无 typecheck 或 test 脚本则省略并告知用户)。.lintstagedrc 内容为 {"*": "prettier --ignore-unknown --write"}。仅在不存在 Prettier 配置时创建 .prettierrc,默认值包括 useTabs false、tabWidth 2、printWidth 80、singleQuote false、trailingComma es5、semi true、arrowParens always。最后验证文件存在、prepare 脚本为 husky,并运行 npx lint-staged 验证,再提交更改。

适用场景:需要提交时格式化、类型检查或测试的仓库。

限制:Husky v9+ 钩子文件不需要 shebang;prettier --ignore-unknown 会跳过无法解析的文件;pre-commit 先运行 lint-staged,再运行完整类型检查和测试。