SuperAPI AI 工具集

setup-pre-commit

编程与开发

查看项目

更新于 10-16 09:35

技能介绍

用途:在当前仓库中设置 pre-commit 钩子,让提交前自动执行格式化、类型检查和测试。

主要能力:安装并配置 Husky 钩子、lint-staged(对所有暂存文件运行 Prettier)、Prettier 配置(缺失时创建),以及在钩子中运行 typecheck 和 test 脚本。

使用方式:先检测包管理器(依据 package-lock.json、pnpm-lock.yaml、yarn.lock、bun.lockb,无法确定时默认 npm);以 devDependencies 安装 husky lint-staged prettier;运行 npx husky init 生成 .husky/ 并在 package.json 添加 prepare: "husky";创建 .husky/pre-commit,内容为 npx lint-staged、npm run typecheck、npm run test(npm 需替换为检测到的包管理器,若缺少对应脚本则省略该行并告知用户);创建 .lintstagedrc,内容为 {"*": "prettier --ignore-unknown --write"};仅当不存在 Prettier 配置时创建 .prettierrc 默认配置;然后验证钩子文件存在且可执行、.lintstagedrc 存在、prepare 为 "husky"、Prettier 配置存在,并运行 npx lint-staged 验证;最后暂存并提交,提交信息为 Add pre-commit hooks (husky + lint-staged + prettier),以此触发钩子做冒烟测试。

限制与注意:Husky v9+ 的钩子文件不需要 shebang;prettier --ignore-unknown 会跳过无法解析的文件;钩子先运行快速的 lint-staged,再运行完整的 typecheck 和 test。具体价格、平台支持等信息暂未提供。