mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-04-02 15:13:28 +08:00
* docs(zh-CN): sync Chinese docs with latest upstream changes * update --------- Co-authored-by: neo <neo.dowithless@gmail.com>
65 lines
2.3 KiB
Markdown
65 lines
2.3 KiB
Markdown
# 构建与修复
|
||
|
||
以最小、安全的更改逐步修复构建和类型错误。
|
||
|
||
## 步骤 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 py_compile` 或 `mypy .` |
|
||
|
||
## 步骤 2:解析并分组错误
|
||
|
||
1. 运行构建命令并捕获 stderr
|
||
2. 按文件路径对错误进行分组
|
||
3. 按依赖顺序排序(先修复导入/类型错误,再修复逻辑错误)
|
||
4. 统计错误总数以跟踪进度
|
||
|
||
## 步骤 3:修复循环(一次处理一个错误)
|
||
|
||
对于每个错误:
|
||
|
||
1. **读取文件** — 使用读取工具查看错误上下文(错误周围的 10 行代码)
|
||
2. **诊断** — 确定根本原因(缺少导入、类型错误、语法错误)
|
||
3. **最小化修复** — 使用编辑工具进行最小的更改以解决错误
|
||
4. **重新运行构建** — 验证错误已消失且未引入新错误
|
||
5. **移至下一个** — 继续处理剩余的错误
|
||
|
||
## 步骤 4:防护措施
|
||
|
||
在以下情况下停止并询问用户:
|
||
|
||
* 一个修复**引入的错误比它解决的更多**
|
||
* **同一错误在 3 次尝试后仍然存在**(可能是更深层次的问题)
|
||
* 修复需要**架构更改**(不仅仅是构建修复)
|
||
* 构建错误源于**缺少依赖项**(需要 `npm install`、`cargo add` 等)
|
||
|
||
## 步骤 5:总结
|
||
|
||
显示结果:
|
||
|
||
* 已修复的错误(包含文件路径)
|
||
* 剩余的错误(如果有)
|
||
* 引入的新错误(应为零)
|
||
* 针对未解决问题的建议后续步骤
|
||
|
||
## 恢复策略
|
||
|
||
| 情况 | 操作 |
|
||
|-----------|--------|
|
||
| 缺少模块/导入 | 检查包是否已安装;建议安装命令 |
|
||
| 类型不匹配 | 读取两种类型定义;修复更窄的类型 |
|
||
| 循环依赖 | 使用导入图识别循环;建议提取 |
|
||
| 版本冲突 | 检查 `package.json` / `Cargo.toml` 中的版本约束 |
|
||
| 构建工具配置错误 | 读取配置文件;与有效的默认配置进行比较 |
|
||
|
||
为了安全起见,一次只修复一个错误。优先使用最小的改动,而不是重构。
|