用途:在当前仓库中设置 Husky pre-commit 钩子,集成 lint-staged(对暂存文件运行 Prettier)、类型检查和测试,在每次提交前自动执行。\n\n主要能力与设置内容:Husky pre-commit 钩子;lint-staged 对所有暂存文件运行 Prettier;在缺失时创建 Prettier 配置;在 pre-commit 钩子中加入 typecheck 和 test 脚本。\n\n使用方式(步骤):1. 检测包管理器:检查 package-lock.json(npm)、pnpm-lock.yaml(pnpm)、yarn.lock(yarn)、bun.lockb(bun),使用存在者,不确定时默认 npm。2. 以 devDependencies 安装 husky lint-staged prettier。3. 运行 npx husky init,创建 .husky/ 目录并在 package.json 添加 prepare: "husky"。4. 创建 .husky/pre-commit,写入 npx lint-staged、npm run typecheck、npm run test(将 npm 替换为检测到的包管理器;若 package.json 无 typecheck 或 test 脚本则省略相应行并告知用户;Husky v9+ 无需 shebang)。5. 创建 .lintstagedrc:{"*": "prettier --ignore-unknown --write"}。6. 仅在无 Prettier 配置时创建 .prettierrc,默认值为 useTabs false、tabWidth 2、printWidth 80、singleQuote false、trailingComma "es5"、semi true、arrowParens "always"。7. 验证:.husky/pre-commit 存在且可执行、.lintstagedrc 存在、package.json 的 prepare 为 "husky"、prettier 配置存在,运行 npx lint-staged 验证。8. 暂存所有更改文件并提交,消息为 Add pre-commit hooks (husky + lint-staged + prettier),这会经过新钩子,作为烟雾测试。\n\n注意事项:Husky v9+ 不需要 shebang;prettier --ignore-unknown 跳过无法解析的文件(如图片);pre-commit 先运行 lint-staged(快速,仅暂存文件),然后运行完整类型检查和测试。\n\n适用场景:需要在提交前统一格式化、类型检查与测试的 JavaScript/TypeScript 项目。限制:资料未提供价格、平台支持范围等信息。
setup-pre-commit
编程与开发
更新于 10-16 01:38