SuperAPI AI 工具集

setup-pre-commit

部署与运维

查看项目

更新于 10-16 03:57

技能介绍

用途

本技能用于在当前仓库中搭建 Husky pre-commit 钩子,让提交代码前自动执行格式化、类型检查与测试。

主要能力

会配置以下内容:Husky pre-commit 钩子;lint-staged 对所有暂存文件运行 Prettier;Prettier 配置(如果缺失);在 pre-commit 钩子中加入 typecheck 和 test 脚本。

使用方式

第一步,检测包管理器。检查是否存在 package-lock.json(npm)、pnpm-lock.yaml(pnpm)、yarn.lock(yarn)、bun.lockb(bun),使用实际存在的那个;不清楚时默认 npm。

第二步,安装依赖。以 devDependencies 方式安装:husky lint-staged prettier。

第三步,初始化 Husky。运行 npx husky init,这会创建 .husky/ 目录并在 package.json 中添加 prepare: "husky"。

第四步,创建 .husky/pre-commit。写入(Husky v9+ 不需要 shebang):

npx lint-staged npm run typecheck npm run test

并做适配:将 npm 替换为检测到的包管理器;如果仓库 package.json 中没有 typecheck 或 test 脚本,则省略相应行并告知用户。

第五步,创建 .lintstagedrc:

{ "*": "prettier --ignore-unknown --write" }

第六步,创建 .prettierrc(如果缺失)。仅在不存在 Prettier 配置时创建,使用以下默认值:

{ "useTabs": false, "tabWidth": 2, "printWidth": 80, "singleQuote": false, "trailingComma": "es5", "semi": true, "arrowParens": "always" }

第七步,验证。确认 .husky/pre-commit 存在且可执行;.lintstagedrc 存在;package.json 中的 prepare 脚本为 "husky";Prettier 配置存在;运行 npx lint-staged 验证其可正常工作。

第八步,提交。暂存所有变更/新建文件,并以如下消息提交:Add pre-commit hooks (husky + lint-staged + prettier)。该提交会经过新配置的 pre-commit 钩子,可作为一次良好的冒烟测试。

适用场景

适用于希望为仓库添加 pre-commit 钩子、在提交前自动格式化暂存文件并运行类型检查与测试的项目。

限制与注意事项

Husky v9+ 的钩子文件不需要 shebang;prettier --ignore-unknown 会跳过 Prettier 无法解析的文件(如图片等);pre-commit 先运行 lint-staged(快速、仅针对暂存文件),再运行完整 typecheck 与测试。其他收费、价格或平台信息暂未提供。