SuperAPI AI 工具集

setup-git-hooks

通用与其它

查看项目

更新于 10-15 21:36

技能介绍

用途:通过 git 内置的 core.hooksPath 把钩子指向已提交的 .githooks/ 目录,实现版本化 Git 钩子,不使用 Husky。lint-staged 在提交前运行 Biome 做格式化与 lint;可选择为 Biome 未覆盖的语言接入 Prettier;pre-commit 中还可运行 typecheck 与 build 脚本。

主要能力:检测包管理器(npm、pnpm、yarn、bun)与现有钩子工具;若仓库已有 Husky(存在 .husky/ 或 prepare: husky),安装或写入前先询问是迁移还是保留并停止。梳理仓库语言后映射格式化器覆盖范围:Biome 支持的语言交给 Biome(部分语言如 Biome 2.x 的 HTML 需在 biome.json 中启用后计入覆盖),项目已有格式化器则保留并路由相应语言,仍未覆盖的语言可提供 Prettier(用户可拒绝)。安装 lint-staged 与 @biomejs/biome 为 devDependencies,接受 Prettier 时才安装。创建 .githooks/pre-commit 并 chmod +x,内容为 npx lint-staged、npm run typecheck --if-present、npm run build --if-present(按检测到的包管理器调整;pnpm 不支持 --if-present,需先检查 package.json,无脚本则省略)。执行 git config core.hooksPath .githooks,并在 package.json 加入 prepare 脚本使其在每次安装时生效。创建 .lintstagedrc,为每个 glob 只指定一个工具。缺少配置时创建 biome.json 与 .prettierrc。最后验证并提交。

使用方式:按上述步骤运行,写入 biome.json 前会询问缩进、行宽(默认 160)、引号风格(默认 double)、分号与箭头括号等基础偏好。

适用场景:希望零依赖、版本化 Git 钩子并使用 Biome 做格式化与 lint 的 JavaScript/TypeScript 项目。

限制:core.hooksPath 会完全覆盖 .git/hooks/,原钩子停止运行;prepare 脚本需在 git 仓库中存在,非 git 环境安装可能失败,需加保护(如 git rev-parse && … || true);若需要 pre-commit 之外的并行步骤或按 glob 运行,可考虑 lefthook。具体收费、价格与更多平台信息暂未提供。