用途:在当前仓库中设置 Husky pre-commit 钩子,并通过 lint-staged 运行 Prettier,同时把类型检查与测试脚本纳入提交前流程。
主要能力:创建 .husky/pre-commit 钩子、安装 husky、lint-staged、prettier 作为 devDependencies、初始化 Husky、生成 .lintstagedrc、在缺少 Prettier 配置时创建 .prettierrc,并在提交时依次运行 lint-staged、typecheck 与 test。
使用方式:先检测包管理器(package-lock.json 对应 npm、pnpm-lock.yaml 对应 pnpm、yarn.lock 对应 yarn、bun.lockb 对应 bun),无法判断时默认 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。最后验证 .husky/pre-commit 存在且可执行、.lintstagedrc 存在、package.json 的 prepare 脚本为 husky、Prettier 配置存在,并运行 npx lint-staged 验证,然后暂存并提交全部改动,提交信息为 Add pre-commit hooks (husky + lint-staged + prettier)。
限制与说明:Husky v9+ 的钩子文件不需要 shebang;prettier --ignore-unknown 会跳过 Prettier 无法解析的文件(如图片);pre-commit 先运行 lint-staged(快速、仅暂存文件),再运行完整的 typecheck 与测试。其他细节暂未提供。