SuperAPI AI 工具集

setup-pre-commit

通用与其它

查看项目

更新于 10-16 01:28

技能介绍

用途:在当前仓库中搭建 Husky pre-commit 钩子,配合 lint-staged 对暂存文件运行 Prettier,并在提交前执行类型检查与测试。

主要能力:自动检测包管理器(依据 package-lock.json、pnpm-lock.yaml、yarn.lock、bun.lockb,无法判断时默认 npm);以 devDependencies 安装 husky、lint-staged、prettier;初始化 Husky;创建 .husky/pre-commit、.lintstagedrc 与(缺失时)Prettier 配置;验证并提交。

使用方式:先检测包管理器,再安装依赖,执行 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"),缺失时创建 .prettierrc 默认配置,随后验证 .husky/pre-commit 存在且可执行、.lintstagedrc 存在、package.json 的 prepare 为 "husky"、Prettier 配置存在,并运行 npx lint-staged 验证,最后暂存并提交,提交信息为 Add pre-commit hooks (husky + lint-staged + prettier)。

适用场景:需要为 JavaScript/TypeScript 项目添加提交前自动格式化与校验的仓库。

限制与注意:Husky v9+ 的钩子文件无需 shebang;prettier --ignore-unknown 会跳过 Prettier 无法解析的文件(如图片);pre-commit 先运行 lint-staged(快速、仅暂存文件),再执行完整类型检查与测试。资料未提供其他平台、收费或效果信息。