代码预检工具 preflight-checks

代码预检工具是一个自动检测并运行项目代码质量检查、格式化和类型检查的工具,用于在代码提交前及早发现和修复错误,提高开发效率和代码质量。关键词:代码质量检查、预检、自动化工具、代码格式化、类型检查、预提交钩子。

测试 0 次安装 0 次浏览 更新于 3/5/2026

name: 预检检查 description: 在提交或声明完成前,检测并运行项目的代码检查工具、格式化工具和类型检查工具。自动从项目配置文件中检测工具。

预检检查

在提交前运行项目的代码质量工具。及早捕获错误,而不是让预提交钩子来捕获。

工具检测

从项目配置文件中检测可用工具。按此顺序检查:

配置文件 工具 检查命令 修复命令
package.json 脚本 npm/yarn/pnpm 查找 linttypecheckformatcheck 脚本 在可用时使用 --fix 运行
.eslintrc* / eslint.config.* ESLint npx eslint <files> npx eslint --fix <files>
tsconfig.json TypeScript npx tsc --noEmit 需要手动修复
.prettierrc* / package.json 中的 prettier Prettier npx prettier --check <files> npx prettier --write <files>
pyproject.toml 带有 [tool.ruff] Ruff ruff check <files> ruff check --fix <files> && ruff format <files>
pyproject.toml 带有 [tool.mypy] / mypy.ini mypy mypy <files> 需要手动修复
pyproject.toml 带有 [tool.black] Black black --check <files> black <files>
.flake8 / setup.cfg 带有 [flake8] Flake8 flake8 <files> 需要手动修复
go.mod Go go vet ./... gofmt -w <files>
Cargo.toml Rust cargo clippy cargo clippy --fix
.pre-commit-config.yaml pre-commit pre-commit run --files <files> 内部运行自动修复

执行顺序

按此顺序运行工具。每个步骤可能会更改后续步骤检查的代码。

  1. 格式化器 (自动修复): prettier, black, ruff format, gofmt
  2. 代码检查器 (尽可能自动修复): eslint --fix, ruff check --fix
  3. 类型检查器 (手动修复): tsc, mypy, pyright

范围

仅检查已暂存或修改的文件。不要对整个代码库运行检查。

# 已暂存文件
git diff --cached --name-only --diff-filter=ACM

# 未暂存修改文件
git diff --name-only --diff-filter=ACM

根据每个工具筛选相关扩展名(例如,仅 .ts/.tsx 用于 tsc,仅 .py 用于 ruff)。

自动修复协议

  1. 运行格式化器/代码检查器及其修复标志
  2. 重新暂存任何被修改的文件:git add <fixed-files>
  3. 报告更改内容:“在 src/auth/login.ts 中修复了 3 个格式化问题”

何时运行

  • git commit 之前(由 /ce:commit 使用)
  • 在声明工作完成之前
  • 在创建 PR 之前(由 /ce:pr 使用)

失败处理

区分可修复和不可修复的错误:

可修复 (自动修复并继续):

  • 格式化错误(空格、尾随逗号、导入排序)
  • 支持自动修复的简单代码检查错误

需要人工决策 (报告并停止):

  • 类型错误(错误类型、缺少属性)
  • 没有自动修复的复杂代码检查错误
  • 测试失败
  • 不理解的错误

永远不要静默跳过失败的检查。