修复构建错误¶
以最小化的安全更改,逐步修复构建及类型错误。
第 1 步:检测构建系统¶
识别项目的构建工具并运行构建:
| 识别依据 | 构建命令 |
|---|---|
package.json 包含 build 脚本 |
npm run build 或 pnpm build |
tsconfig.json(仅 TypeScript) |
npx tsc --noEmit |
Cargo.toml |
cargo build 2>&1 |
pom.xml |
mvn compile |
build.gradle |
./gradlew compileJava |
go.mod |
go build ./... |
pyproject.toml |
python -m compileall . 或 mypy . |
第 2 步:解析并分组错误¶
- 运行构建命令并捕获 stderr
- 按文件路径对错误进行分组
- 按依赖顺序进行排序(先修复 import/类型错误,再修复逻辑错误)
- 统计错误总数以跟踪进度
第 3 步:修复循环(一次一个错误)¶
对于每个错误:
- 读取文件 — 使用 Read 工具查看错误位置前后 10 行的上下文
- 诊断 — 识别根本原因(缺失的 import、错误的类型、语法错误)
- 最小化修复 — 使用 Edit 工具应用解决该错误所需的最小更改
- 重新运行构建 — 确认错误已解决且没有产生新错误
- 继续下一个 — 继续处理剩余的错误
第 4 步:安全措施¶
在以下情况下请求用户确认:
- 修复产生的错误多于其解决的错误时
- 同一错误在尝试 3 次后仍然存在时(可能是更深层的问题)
- 修复需要架构更改时(而不仅仅是构建修复)
- 构建错误源于缺失的依赖时(需要
npm install、cargo add等)
第 5 步:总结¶
展示结果: - 已修复的错误(包含文件路径) - 剩余的错误(如有) - 新产生的错误(应为 0) - 对未解决问题的后续步骤建议
恢复策略¶
| 情况 | 措施 |
|---|---|
| 模块/import 缺失 | 检查包是否已安装,并建议安装命令 |
| 类型不匹配 | 检查两侧的类型定义,并修正较窄的类型 |
| 循环依赖 | 通过 import 图识别循环,并建议拆分 |
| 版本冲突 | 检查 package.json / Cargo.toml 中的版本约束 |
| 构建工具配置错误 | 检查配置文件,并与正常工作的默认值进行比较 |
为了安全起见,请一次只修复一个错误。优先选择最小 diff,而不是重构。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 ev/ECC