koatty 4.0.0 → 4.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +23 -30
- package/.vscode/launch.json +42 -0
- package/CHANGELOG.md +50 -24
- package/TASKS.md +1227 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +180 -136
- package/dist/index.mjs +244 -200
- package/dist/package.json +17 -26
- package/package.json +24 -33
- package/reports/backup-branch.txt +1 -0
- package/reports/node-version.txt +2 -0
- package/reports/pnpm-version.txt +2 -0
- package/tsconfig.test.json +0 -0
- package/.package.json.backup +0 -1
package/TASKS.md
ADDED
|
@@ -0,0 +1,1227 @@
|
|
|
1
|
+
# Koatty Monorepo 迁移任务清单
|
|
2
|
+
|
|
3
|
+
> **目标**: 将 Koatty 框架迁移到 Monorepo 架构,并配置自动同步
|
|
4
|
+
> **执行方式**: 由工程 LLM 逐个执行,每个任务独立且可测试
|
|
5
|
+
> **预计时间**: 5-7 天
|
|
6
|
+
> **状态**: 📋 待开始
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 📊 任务概览
|
|
11
|
+
|
|
12
|
+
| 阶段 | 任务数 | 预计时间 | 状态 |
|
|
13
|
+
|-----|-------|---------|------|
|
|
14
|
+
| **阶段 0**: 环境准备 | 3 | 0.5天 | ⏳ |
|
|
15
|
+
| **阶段 1**: 创建 Monorepo | 5 | 1天 | ⏳ |
|
|
16
|
+
| **阶段 2**: 迁移核心包 | 8 | 2天 | ⏳ |
|
|
17
|
+
| **阶段 3**: 配置构建系统 | 6 | 1天 | ⏳ |
|
|
18
|
+
| **阶段 4**: 配置自动同步 | 5 | 1天 | ⏳ |
|
|
19
|
+
| **阶段 5**: 测试与验证 | 6 | 1天 | ⏳ |
|
|
20
|
+
| **总计** | **33个任务** | **6.5天** | |
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 阶段 0: 环境准备
|
|
25
|
+
|
|
26
|
+
### TASK-0.1: 验证 Node.js 版本
|
|
27
|
+
|
|
28
|
+
**目标**: 确保 Node.js 版本 >= 18.0.0
|
|
29
|
+
|
|
30
|
+
**前置条件**:
|
|
31
|
+
- 无
|
|
32
|
+
|
|
33
|
+
**执行步骤**:
|
|
34
|
+
1. 运行 `node -v` 检查版本
|
|
35
|
+
2. 如果版本 < 18.0.0,输出升级指南
|
|
36
|
+
3. 创建验证报告
|
|
37
|
+
|
|
38
|
+
**验收标准**:
|
|
39
|
+
- [ ] Node.js 版本 >= 18.0.0
|
|
40
|
+
- [ ] 输出版本信息到 `reports/node-version.txt`
|
|
41
|
+
|
|
42
|
+
**测试命令**:
|
|
43
|
+
```bash
|
|
44
|
+
node -v
|
|
45
|
+
cat reports/node-version.txt
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
**回滚方案**:
|
|
49
|
+
- 无需回滚(只读操作)
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
### TASK-0.2: 安装 pnpm
|
|
54
|
+
|
|
55
|
+
**目标**: 安装并验证 pnpm >= 8.0.0
|
|
56
|
+
|
|
57
|
+
**前置条件**:
|
|
58
|
+
- TASK-0.1 完成
|
|
59
|
+
|
|
60
|
+
**执行步骤**:
|
|
61
|
+
1. 检查 pnpm 是否已安装
|
|
62
|
+
2. 如果未安装,运行 `npm install -g pnpm@8`
|
|
63
|
+
3. 验证版本 `pnpm -v`
|
|
64
|
+
4. 记录到报告
|
|
65
|
+
|
|
66
|
+
**验收标准**:
|
|
67
|
+
- [ ] pnpm 已安装
|
|
68
|
+
- [ ] pnpm 版本 >= 8.0.0
|
|
69
|
+
- [ ] 输出版本信息到 `reports/pnpm-version.txt`
|
|
70
|
+
|
|
71
|
+
**测试命令**:
|
|
72
|
+
```bash
|
|
73
|
+
pnpm -v
|
|
74
|
+
cat reports/pnpm-version.txt
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**回滚方案**:
|
|
78
|
+
- 无需回滚(全局安装)
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
### TASK-0.3: 创建备份分支
|
|
83
|
+
|
|
84
|
+
**目标**: 为当前仓库创建备份分支
|
|
85
|
+
|
|
86
|
+
**前置条件**:
|
|
87
|
+
- TASK-0.2 完成
|
|
88
|
+
- 当前在 koatty 仓库根目录
|
|
89
|
+
|
|
90
|
+
**执行步骤**:
|
|
91
|
+
1. 确保工作区干净: `git status`
|
|
92
|
+
2. 创建备份分支: `git branch backup-before-monorepo-$(date +%Y%m%d)`
|
|
93
|
+
3. 推送到远程: `git push origin backup-before-monorepo-$(date +%Y%m%d)`
|
|
94
|
+
4. 记录分支名
|
|
95
|
+
|
|
96
|
+
**验收标准**:
|
|
97
|
+
- [ ] 创建了备份分支
|
|
98
|
+
- [ ] 备份分支已推送到远程
|
|
99
|
+
- [ ] 分支名记录在 `reports/backup-branch.txt`
|
|
100
|
+
|
|
101
|
+
**测试命令**:
|
|
102
|
+
```bash
|
|
103
|
+
git branch --list 'backup-before-monorepo-*'
|
|
104
|
+
cat reports/backup-branch.txt
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
**回滚方案**:
|
|
108
|
+
```bash
|
|
109
|
+
# 恢复到备份分支
|
|
110
|
+
git checkout $(cat reports/backup-branch.txt)
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## 阶段 1: 创建 Monorepo 基础结构
|
|
116
|
+
|
|
117
|
+
### TASK-1.1: 创建 Monorepo 目录
|
|
118
|
+
|
|
119
|
+
**目标**: 在上层目录创建 koatty-monorepo
|
|
120
|
+
|
|
121
|
+
**前置条件**:
|
|
122
|
+
- TASK-0.3 完成
|
|
123
|
+
|
|
124
|
+
**执行步骤**:
|
|
125
|
+
1. 进入上层目录: `cd ..`
|
|
126
|
+
2. 创建 monorepo 目录: `mkdir -p koatty-monorepo`
|
|
127
|
+
3. 进入目录: `cd koatty-monorepo`
|
|
128
|
+
4. 初始化 git: `git init`
|
|
129
|
+
5. 创建 .gitignore
|
|
130
|
+
|
|
131
|
+
**验收标准**:
|
|
132
|
+
- [ ] koatty-monorepo 目录已创建
|
|
133
|
+
- [ ] Git 仓库已初始化
|
|
134
|
+
- [ ] .gitignore 文件已创建
|
|
135
|
+
|
|
136
|
+
**测试命令**:
|
|
137
|
+
```bash
|
|
138
|
+
cd koatty-monorepo
|
|
139
|
+
git status
|
|
140
|
+
ls -la .gitignore
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
**回滚方案**:
|
|
144
|
+
```bash
|
|
145
|
+
cd ..
|
|
146
|
+
rm -rf koatty-monorepo
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
**输出文件**:
|
|
150
|
+
- `koatty-monorepo/.gitignore`
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
### TASK-1.2: 创建基础目录结构
|
|
155
|
+
|
|
156
|
+
**目标**: 创建 packages、apps、tools 目录
|
|
157
|
+
|
|
158
|
+
**前置条件**:
|
|
159
|
+
- TASK-1.1 完成
|
|
160
|
+
- 当前在 koatty-monorepo 目录
|
|
161
|
+
|
|
162
|
+
**执行步骤**:
|
|
163
|
+
1. 创建目录: `mkdir -p packages apps tools scripts .github/workflows`
|
|
164
|
+
2. 创建 reports 目录: `mkdir reports`
|
|
165
|
+
3. 列出目录结构
|
|
166
|
+
|
|
167
|
+
**验收标准**:
|
|
168
|
+
- [ ] packages/ 目录存在
|
|
169
|
+
- [ ] apps/ 目录存在
|
|
170
|
+
- [ ] tools/ 目录存在
|
|
171
|
+
- [ ] scripts/ 目录存在
|
|
172
|
+
- [ ] .github/workflows/ 目录存在
|
|
173
|
+
- [ ] 目录结构输出到 `reports/directory-structure.txt`
|
|
174
|
+
|
|
175
|
+
**测试命令**:
|
|
176
|
+
```bash
|
|
177
|
+
ls -la packages apps tools scripts .github/workflows
|
|
178
|
+
tree -L 2 > reports/directory-structure.txt 2>/dev/null || find . -maxdepth 2 -type d > reports/directory-structure.txt
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
**回滚方案**:
|
|
182
|
+
```bash
|
|
183
|
+
rm -rf packages apps tools scripts .github
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
### TASK-1.3: 初始化 package.json
|
|
189
|
+
|
|
190
|
+
**目标**: 创建根 package.json
|
|
191
|
+
|
|
192
|
+
**前置条件**:
|
|
193
|
+
- TASK-1.2 完成
|
|
194
|
+
|
|
195
|
+
**执行步骤**:
|
|
196
|
+
1. 运行 `pnpm init`
|
|
197
|
+
2. 更新 package.json 内容
|
|
198
|
+
3. 添加必要的脚本
|
|
199
|
+
|
|
200
|
+
**验收标准**:
|
|
201
|
+
- [ ] package.json 存在
|
|
202
|
+
- [ ] name 为 "koatty-monorepo"
|
|
203
|
+
- [ ] private 为 true
|
|
204
|
+
- [ ] packageManager 字段指定 pnpm@8
|
|
205
|
+
- [ ] 包含基础 scripts
|
|
206
|
+
|
|
207
|
+
**测试命令**:
|
|
208
|
+
```bash
|
|
209
|
+
cat package.json | jq '.name, .private, .packageManager'
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
**回滚方案**:
|
|
213
|
+
```bash
|
|
214
|
+
rm package.json
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
**输出文件**:
|
|
218
|
+
- `package.json`
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
### TASK-1.4: 创建 pnpm-workspace.yaml
|
|
223
|
+
|
|
224
|
+
**目标**: 配置 pnpm workspace
|
|
225
|
+
|
|
226
|
+
**前置条件**:
|
|
227
|
+
- TASK-1.3 完成
|
|
228
|
+
|
|
229
|
+
**执行步骤**:
|
|
230
|
+
1. 创建 pnpm-workspace.yaml
|
|
231
|
+
2. 配置 packages、apps、tools 为 workspace
|
|
232
|
+
|
|
233
|
+
**验收标准**:
|
|
234
|
+
- [ ] pnpm-workspace.yaml 存在
|
|
235
|
+
- [ ] 包含 'packages/*'
|
|
236
|
+
- [ ] 包含 'apps/*'
|
|
237
|
+
- [ ] 包含 'tools/*'
|
|
238
|
+
|
|
239
|
+
**测试命令**:
|
|
240
|
+
```bash
|
|
241
|
+
cat pnpm-workspace.yaml
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
**回滚方案**:
|
|
245
|
+
```bash
|
|
246
|
+
rm pnpm-workspace.yaml
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
**输出文件**:
|
|
250
|
+
```yaml
|
|
251
|
+
# pnpm-workspace.yaml
|
|
252
|
+
packages:
|
|
253
|
+
- 'packages/*'
|
|
254
|
+
- 'apps/*'
|
|
255
|
+
- 'tools/*'
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
### TASK-1.5: 创建 turbo.json
|
|
261
|
+
|
|
262
|
+
**目标**: 配置 Turborepo
|
|
263
|
+
|
|
264
|
+
**前置条件**:
|
|
265
|
+
- TASK-1.4 完成
|
|
266
|
+
|
|
267
|
+
**执行步骤**:
|
|
268
|
+
1. 安装 turbo: `pnpm add -D turbo`
|
|
269
|
+
2. 创建 turbo.json
|
|
270
|
+
3. 配置 pipeline
|
|
271
|
+
|
|
272
|
+
**验收标准**:
|
|
273
|
+
- [ ] turbo 已安装
|
|
274
|
+
- [ ] turbo.json 存在
|
|
275
|
+
- [ ] 配置了 build、dev、test、lint pipeline
|
|
276
|
+
- [ ] 启用了缓存
|
|
277
|
+
|
|
278
|
+
**测试命令**:
|
|
279
|
+
```bash
|
|
280
|
+
cat turbo.json
|
|
281
|
+
pnpm list turbo
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
**回滚方案**:
|
|
285
|
+
```bash
|
|
286
|
+
rm turbo.json
|
|
287
|
+
pnpm remove turbo
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
**输出文件**:
|
|
291
|
+
```json
|
|
292
|
+
{
|
|
293
|
+
"$schema": "https://turbo.build/schema.json",
|
|
294
|
+
"globalDependencies": [
|
|
295
|
+
"tsconfig.base.json",
|
|
296
|
+
".eslintrc.js"
|
|
297
|
+
],
|
|
298
|
+
"pipeline": {
|
|
299
|
+
"build": {
|
|
300
|
+
"dependsOn": ["^build"],
|
|
301
|
+
"outputs": ["dist/**", "*.tsbuildinfo"],
|
|
302
|
+
"cache": true
|
|
303
|
+
},
|
|
304
|
+
"dev": {
|
|
305
|
+
"cache": false,
|
|
306
|
+
"persistent": true
|
|
307
|
+
},
|
|
308
|
+
"test": {
|
|
309
|
+
"dependsOn": ["build"],
|
|
310
|
+
"outputs": ["coverage/**"],
|
|
311
|
+
"cache": true
|
|
312
|
+
},
|
|
313
|
+
"lint": {
|
|
314
|
+
"outputs": [],
|
|
315
|
+
"cache": true
|
|
316
|
+
},
|
|
317
|
+
"clean": {
|
|
318
|
+
"cache": false
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
## 阶段 2: 迁移核心包
|
|
327
|
+
|
|
328
|
+
### TASK-2.1: 配置 Git Remotes
|
|
329
|
+
|
|
330
|
+
**目标**: 为每个核心包添加独立仓库的 remote
|
|
331
|
+
|
|
332
|
+
**前置条件**:
|
|
333
|
+
- TASK-1.5 完成
|
|
334
|
+
- 当前在 koatty-monorepo 目录
|
|
335
|
+
|
|
336
|
+
**执行步骤**:
|
|
337
|
+
1. 添加 remote for koatty_core
|
|
338
|
+
2. 添加 remote for koatty_router
|
|
339
|
+
3. 添加 remote for koatty_serve
|
|
340
|
+
4. 添加 remote for koatty_exception
|
|
341
|
+
5. 添加 remote for koatty_trace
|
|
342
|
+
6. 添加 remote for koatty_config
|
|
343
|
+
7. 添加 remote for koatty
|
|
344
|
+
8. 列出所有 remotes
|
|
345
|
+
|
|
346
|
+
**验收标准**:
|
|
347
|
+
- [ ] 7个 remote 已添加
|
|
348
|
+
- [ ] remote 列表输出到 `reports/git-remotes.txt`
|
|
349
|
+
|
|
350
|
+
**测试命令**:
|
|
351
|
+
```bash
|
|
352
|
+
git remote -v > reports/git-remotes.txt
|
|
353
|
+
cat reports/git-remotes.txt
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
**回滚方案**:
|
|
357
|
+
```bash
|
|
358
|
+
git remote remove koatty-core
|
|
359
|
+
git remote remove koatty-router
|
|
360
|
+
git remote remove koatty-serve
|
|
361
|
+
git remote remove koatty-exception
|
|
362
|
+
git remote remove koatty-trace
|
|
363
|
+
git remote remove koatty-config
|
|
364
|
+
git remote remove koatty-main
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
---
|
|
368
|
+
|
|
369
|
+
### TASK-2.2: 克隆 koatty_config
|
|
370
|
+
|
|
371
|
+
**目标**: 将 koatty_config 克隆到 packages/
|
|
372
|
+
|
|
373
|
+
**前置条件**:
|
|
374
|
+
- TASK-2.1 完成
|
|
375
|
+
|
|
376
|
+
**执行步骤**:
|
|
377
|
+
1. 克隆仓库到临时目录
|
|
378
|
+
2. 移动到 packages/koatty-config
|
|
379
|
+
3. 删除 .git 目录(保留代码)
|
|
380
|
+
4. 验证文件完整性
|
|
381
|
+
|
|
382
|
+
**验收标准**:
|
|
383
|
+
- [ ] packages/koatty-config/ 目录存在
|
|
384
|
+
- [ ] package.json 存在且 name 为 "koatty_config"
|
|
385
|
+
- [ ] src/ 目录存在
|
|
386
|
+
- [ ] 无 .git 目录
|
|
387
|
+
|
|
388
|
+
**测试命令**:
|
|
389
|
+
```bash
|
|
390
|
+
ls packages/koatty-config/
|
|
391
|
+
cat packages/koatty-config/package.json | jq '.name, .version'
|
|
392
|
+
test ! -d packages/koatty-config/.git && echo "No .git directory"
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
**回滚方案**:
|
|
396
|
+
```bash
|
|
397
|
+
rm -rf packages/koatty-config
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
---
|
|
401
|
+
|
|
402
|
+
### TASK-2.3: 克隆 koatty_exception
|
|
403
|
+
|
|
404
|
+
**目标**: 将 koatty_exception 克隆到 packages/
|
|
405
|
+
|
|
406
|
+
**前置条件**:
|
|
407
|
+
- TASK-2.2 完成
|
|
408
|
+
|
|
409
|
+
**执行步骤**:
|
|
410
|
+
1. 克隆仓库到临时目录
|
|
411
|
+
2. 移动到 packages/koatty-exception
|
|
412
|
+
3. 删除 .git 目录
|
|
413
|
+
4. 验证文件完整性
|
|
414
|
+
|
|
415
|
+
**验收标准**:
|
|
416
|
+
- [ ] packages/koatty-exception/ 目录存在
|
|
417
|
+
- [ ] package.json 存在且 name 为 "koatty_exception"
|
|
418
|
+
- [ ] src/ 目录存在
|
|
419
|
+
|
|
420
|
+
**测试命令**:
|
|
421
|
+
```bash
|
|
422
|
+
cat packages/koatty-exception/package.json | jq '.name, .version'
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
**回滚方案**:
|
|
426
|
+
```bash
|
|
427
|
+
rm -rf packages/koatty-exception
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
---
|
|
431
|
+
|
|
432
|
+
### TASK-2.4: 克隆 koatty_trace
|
|
433
|
+
|
|
434
|
+
**目标**: 将 koatty_trace 克隆到 packages/
|
|
435
|
+
|
|
436
|
+
**前置条件**:
|
|
437
|
+
- TASK-2.3 完成
|
|
438
|
+
|
|
439
|
+
**执行步骤**:
|
|
440
|
+
1. 克隆仓库
|
|
441
|
+
2. 移动到 packages/koatty-trace
|
|
442
|
+
3. 删除 .git 目录
|
|
443
|
+
4. 验证
|
|
444
|
+
|
|
445
|
+
**验收标准**:
|
|
446
|
+
- [ ] packages/koatty-trace/ 目录存在
|
|
447
|
+
- [ ] package.json 正确
|
|
448
|
+
|
|
449
|
+
**测试命令**:
|
|
450
|
+
```bash
|
|
451
|
+
cat packages/koatty-trace/package.json | jq '.name'
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
**回滚方案**:
|
|
455
|
+
```bash
|
|
456
|
+
rm -rf packages/koatty-trace
|
|
457
|
+
```
|
|
458
|
+
|
|
459
|
+
---
|
|
460
|
+
|
|
461
|
+
### TASK-2.5: 克隆 koatty_core
|
|
462
|
+
|
|
463
|
+
**目标**: 将 koatty_core 克隆到 packages/
|
|
464
|
+
|
|
465
|
+
**前置条件**:
|
|
466
|
+
- TASK-2.4 完成
|
|
467
|
+
|
|
468
|
+
**执行步骤**:
|
|
469
|
+
1. 克隆 koatty_core
|
|
470
|
+
2. 移动到 packages/koatty-core
|
|
471
|
+
3. 删除 .git 目录
|
|
472
|
+
4. 验证
|
|
473
|
+
|
|
474
|
+
**验收标准**:
|
|
475
|
+
- [ ] packages/koatty-core/ 目录存在
|
|
476
|
+
- [ ] package.json 正确
|
|
477
|
+
|
|
478
|
+
**测试命令**:
|
|
479
|
+
```bash
|
|
480
|
+
cat packages/koatty-core/package.json | jq '.name'
|
|
481
|
+
```
|
|
482
|
+
|
|
483
|
+
**回滚方案**:
|
|
484
|
+
```bash
|
|
485
|
+
rm -rf packages/koatty-core
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
---
|
|
489
|
+
|
|
490
|
+
### TASK-2.6: 克隆 koatty_router
|
|
491
|
+
|
|
492
|
+
**目标**: 将 koatty_router 克隆到 packages/
|
|
493
|
+
|
|
494
|
+
**前置条件**:
|
|
495
|
+
- TASK-2.5 完成
|
|
496
|
+
|
|
497
|
+
**执行步骤**:
|
|
498
|
+
1. 克隆仓库
|
|
499
|
+
2. 移动到 packages/koatty-router
|
|
500
|
+
3. 删除 .git 目录
|
|
501
|
+
4. 验证
|
|
502
|
+
|
|
503
|
+
**验收标准**:
|
|
504
|
+
- [ ] packages/koatty-router/ 目录存在
|
|
505
|
+
- [ ] package.json 正确
|
|
506
|
+
|
|
507
|
+
**测试命令**:
|
|
508
|
+
```bash
|
|
509
|
+
cat packages/koatty-router/package.json | jq '.name'
|
|
510
|
+
```
|
|
511
|
+
|
|
512
|
+
**回滚方案**:
|
|
513
|
+
```bash
|
|
514
|
+
rm -rf packages/koatty-router
|
|
515
|
+
```
|
|
516
|
+
|
|
517
|
+
---
|
|
518
|
+
|
|
519
|
+
### TASK-2.7: 克隆 koatty_serve
|
|
520
|
+
|
|
521
|
+
**目标**: 将 koatty_serve 克隆到 packages/
|
|
522
|
+
|
|
523
|
+
**前置条件**:
|
|
524
|
+
- TASK-2.6 完成
|
|
525
|
+
|
|
526
|
+
**执行步骤**:
|
|
527
|
+
1. 克隆仓库
|
|
528
|
+
2. 移动到 packages/koatty-serve
|
|
529
|
+
3. 删除 .git 目录
|
|
530
|
+
4. 验证
|
|
531
|
+
|
|
532
|
+
**验收标准**:
|
|
533
|
+
- [ ] packages/koatty-serve/ 目录存在
|
|
534
|
+
- [ ] package.json 正确
|
|
535
|
+
|
|
536
|
+
**测试命令**:
|
|
537
|
+
```bash
|
|
538
|
+
cat packages/koatty-serve/package.json | jq '.name'
|
|
539
|
+
```
|
|
540
|
+
|
|
541
|
+
**回滚方案**:
|
|
542
|
+
```bash
|
|
543
|
+
rm -rf packages/koatty-serve
|
|
544
|
+
```
|
|
545
|
+
|
|
546
|
+
---
|
|
547
|
+
|
|
548
|
+
### TASK-2.8: 克隆 koatty 主包
|
|
549
|
+
|
|
550
|
+
**目标**: 将 koatty 克隆到 packages/
|
|
551
|
+
|
|
552
|
+
**前置条件**:
|
|
553
|
+
- TASK-2.7 完成
|
|
554
|
+
|
|
555
|
+
**执行步骤**:
|
|
556
|
+
1. 克隆 koatty
|
|
557
|
+
2. 移动到 packages/koatty
|
|
558
|
+
3. 删除 .git 目录
|
|
559
|
+
4. 验证
|
|
560
|
+
5. 生成迁移报告
|
|
561
|
+
|
|
562
|
+
**验收标准**:
|
|
563
|
+
- [ ] packages/koatty/ 目录存在
|
|
564
|
+
- [ ] 所有7个包都已迁移
|
|
565
|
+
- [ ] 迁移报告生成: `reports/migration-summary.txt`
|
|
566
|
+
|
|
567
|
+
**测试命令**:
|
|
568
|
+
```bash
|
|
569
|
+
ls packages/
|
|
570
|
+
cat packages/koatty/package.json | jq '.name'
|
|
571
|
+
echo "Migrated packages:" > reports/migration-summary.txt
|
|
572
|
+
ls packages/ >> reports/migration-summary.txt
|
|
573
|
+
cat reports/migration-summary.txt
|
|
574
|
+
```
|
|
575
|
+
|
|
576
|
+
**回滚方案**:
|
|
577
|
+
```bash
|
|
578
|
+
rm -rf packages/koatty
|
|
579
|
+
```
|
|
580
|
+
|
|
581
|
+
---
|
|
582
|
+
|
|
583
|
+
## 阶段 3: 配置构建系统
|
|
584
|
+
|
|
585
|
+
### TASK-3.1: 更新 workspace 依赖 - koatty_config
|
|
586
|
+
|
|
587
|
+
**目标**: 将 koatty_config 的内部依赖改为 workspace:*
|
|
588
|
+
|
|
589
|
+
**前置条件**:
|
|
590
|
+
- TASK-2.8 完成
|
|
591
|
+
|
|
592
|
+
**执行步骤**:
|
|
593
|
+
1. 读取 packages/koatty-config/package.json
|
|
594
|
+
2. 检查 dependencies 中的 koatty 相关包
|
|
595
|
+
3. 如果是 monorepo 包,改为 "workspace:*"
|
|
596
|
+
4. 保存文件
|
|
597
|
+
|
|
598
|
+
**验收标准**:
|
|
599
|
+
- [ ] monorepo 包使用 "workspace:*"
|
|
600
|
+
- [ ] 独立包(koatty_container, koatty_lib, koatty_logger, koatty_loader)保持 npm 版本
|
|
601
|
+
|
|
602
|
+
**测试命令**:
|
|
603
|
+
```bash
|
|
604
|
+
cat packages/koatty-config/package.json | jq '.dependencies'
|
|
605
|
+
```
|
|
606
|
+
|
|
607
|
+
**回滚方案**:
|
|
608
|
+
```bash
|
|
609
|
+
git checkout packages/koatty-config/package.json
|
|
610
|
+
```
|
|
611
|
+
|
|
612
|
+
---
|
|
613
|
+
|
|
614
|
+
### TASK-3.2: 更新 workspace 依赖 - koatty_exception
|
|
615
|
+
|
|
616
|
+
**目标**: 更新 koatty_exception 的依赖
|
|
617
|
+
|
|
618
|
+
**前置条件**:
|
|
619
|
+
- TASK-3.1 完成
|
|
620
|
+
|
|
621
|
+
**执行步骤**:
|
|
622
|
+
1. 更新 package.json 中的 monorepo 包依赖为 "workspace:*"
|
|
623
|
+
2. 保留独立包的 npm 版本
|
|
624
|
+
|
|
625
|
+
**验收标准**:
|
|
626
|
+
- [ ] 依赖正确更新
|
|
627
|
+
|
|
628
|
+
**测试命令**:
|
|
629
|
+
```bash
|
|
630
|
+
cat packages/koatty-exception/package.json | jq '.dependencies'
|
|
631
|
+
```
|
|
632
|
+
|
|
633
|
+
**回滚方案**:
|
|
634
|
+
```bash
|
|
635
|
+
git checkout packages/koatty-exception/package.json
|
|
636
|
+
```
|
|
637
|
+
|
|
638
|
+
---
|
|
639
|
+
|
|
640
|
+
### TASK-3.3: 更新 workspace 依赖 - koatty_trace
|
|
641
|
+
|
|
642
|
+
**目标**: 更新 koatty_trace 的依赖
|
|
643
|
+
|
|
644
|
+
**前置条件**:
|
|
645
|
+
- TASK-3.2 完成
|
|
646
|
+
|
|
647
|
+
**执行步骤**:
|
|
648
|
+
1. 更新依赖为 workspace:*
|
|
649
|
+
|
|
650
|
+
**验收标准**:
|
|
651
|
+
- [ ] 依赖正确更新
|
|
652
|
+
|
|
653
|
+
**测试命令**:
|
|
654
|
+
```bash
|
|
655
|
+
cat packages/koatty-trace/package.json | jq '.dependencies'
|
|
656
|
+
```
|
|
657
|
+
|
|
658
|
+
**回滚方案**:
|
|
659
|
+
```bash
|
|
660
|
+
git checkout packages/koatty-trace/package.json
|
|
661
|
+
```
|
|
662
|
+
|
|
663
|
+
---
|
|
664
|
+
|
|
665
|
+
### TASK-3.4: 更新 workspace 依赖 - koatty_core, koatty_router, koatty_serve
|
|
666
|
+
|
|
667
|
+
**目标**: 批量更新剩余包的依赖
|
|
668
|
+
|
|
669
|
+
**前置条件**:
|
|
670
|
+
- TASK-3.3 完成
|
|
671
|
+
|
|
672
|
+
**执行步骤**:
|
|
673
|
+
1. 更新 koatty_core
|
|
674
|
+
2. 更新 koatty_router
|
|
675
|
+
3. 更新 koatty_serve
|
|
676
|
+
4. 生成依赖关系报告
|
|
677
|
+
|
|
678
|
+
**验收标准**:
|
|
679
|
+
- [ ] 所有 monorepo 包使用 workspace:*
|
|
680
|
+
- [ ] 依赖关系报告: `reports/dependencies.txt`
|
|
681
|
+
|
|
682
|
+
**测试命令**:
|
|
683
|
+
```bash
|
|
684
|
+
for pkg in koatty-core koatty-router koatty-serve; do
|
|
685
|
+
echo "=== $pkg ===" >> reports/dependencies.txt
|
|
686
|
+
cat packages/$pkg/package.json | jq '.dependencies' >> reports/dependencies.txt
|
|
687
|
+
done
|
|
688
|
+
cat reports/dependencies.txt
|
|
689
|
+
```
|
|
690
|
+
|
|
691
|
+
**回滚方案**:
|
|
692
|
+
```bash
|
|
693
|
+
git checkout packages/koatty-core/package.json
|
|
694
|
+
git checkout packages/koatty-router/package.json
|
|
695
|
+
git checkout packages/koatty-serve/package.json
|
|
696
|
+
```
|
|
697
|
+
|
|
698
|
+
---
|
|
699
|
+
|
|
700
|
+
### TASK-3.5: 更新 koatty 主包依赖
|
|
701
|
+
|
|
702
|
+
**目标**: 更新 koatty 主包的所有依赖
|
|
703
|
+
|
|
704
|
+
**前置条件**:
|
|
705
|
+
- TASK-3.4 完成
|
|
706
|
+
|
|
707
|
+
**执行步骤**:
|
|
708
|
+
1. 更新所有核心包依赖为 workspace:*
|
|
709
|
+
2. 保留独立包版本
|
|
710
|
+
3. 验证依赖完整性
|
|
711
|
+
|
|
712
|
+
**验收标准**:
|
|
713
|
+
- [ ] koatty 正确依赖所有核心包
|
|
714
|
+
- [ ] 使用 workspace 协议
|
|
715
|
+
|
|
716
|
+
**测试命令**:
|
|
717
|
+
```bash
|
|
718
|
+
cat packages/koatty/package.json | jq '.dependencies'
|
|
719
|
+
```
|
|
720
|
+
|
|
721
|
+
**回滚方案**:
|
|
722
|
+
```bash
|
|
723
|
+
git checkout packages/koatty/package.json
|
|
724
|
+
```
|
|
725
|
+
|
|
726
|
+
---
|
|
727
|
+
|
|
728
|
+
### TASK-3.6: 安装所有依赖并验证
|
|
729
|
+
|
|
730
|
+
**目标**: 安装 workspace 依赖并验证
|
|
731
|
+
|
|
732
|
+
**前置条件**:
|
|
733
|
+
- TASK-3.5 完成
|
|
734
|
+
|
|
735
|
+
**执行步骤**:
|
|
736
|
+
1. 运行 `pnpm install`
|
|
737
|
+
2. 检查是否有错误
|
|
738
|
+
3. 验证 workspace 链接
|
|
739
|
+
4. 生成依赖树
|
|
740
|
+
|
|
741
|
+
**验收标准**:
|
|
742
|
+
- [ ] pnpm install 成功
|
|
743
|
+
- [ ] 没有依赖错误
|
|
744
|
+
- [ ] workspace 包正确链接
|
|
745
|
+
- [ ] 依赖树输出到 `reports/dependency-tree.txt`
|
|
746
|
+
|
|
747
|
+
**测试命令**:
|
|
748
|
+
```bash
|
|
749
|
+
pnpm install
|
|
750
|
+
pnpm list --depth=1 > reports/dependency-tree.txt
|
|
751
|
+
cat reports/dependency-tree.txt
|
|
752
|
+
```
|
|
753
|
+
|
|
754
|
+
**回滚方案**:
|
|
755
|
+
```bash
|
|
756
|
+
rm -rf node_modules pnpm-lock.yaml
|
|
757
|
+
```
|
|
758
|
+
|
|
759
|
+
---
|
|
760
|
+
|
|
761
|
+
## 阶段 4: 配置自动同步
|
|
762
|
+
|
|
763
|
+
### TASK-4.1: 创建同步脚本
|
|
764
|
+
|
|
765
|
+
**目标**: 创建 scripts/sync-to-repos.sh
|
|
766
|
+
|
|
767
|
+
**前置条件**:
|
|
768
|
+
- TASK-3.6 完成
|
|
769
|
+
|
|
770
|
+
**执行步骤**:
|
|
771
|
+
1. 创建 scripts/sync-to-repos.sh
|
|
772
|
+
2. 添加执行权限
|
|
773
|
+
3. 测试脚本语法
|
|
774
|
+
|
|
775
|
+
**验收标准**:
|
|
776
|
+
- [ ] 脚本文件存在
|
|
777
|
+
- [ ] 有执行权限
|
|
778
|
+
- [ ] bash 语法正确
|
|
779
|
+
|
|
780
|
+
**测试命令**:
|
|
781
|
+
```bash
|
|
782
|
+
ls -la scripts/sync-to-repos.sh
|
|
783
|
+
bash -n scripts/sync-to-repos.sh
|
|
784
|
+
```
|
|
785
|
+
|
|
786
|
+
**回滚方案**:
|
|
787
|
+
```bash
|
|
788
|
+
rm scripts/sync-to-repos.sh
|
|
789
|
+
```
|
|
790
|
+
|
|
791
|
+
**输出文件**:
|
|
792
|
+
参考 MONOREPO_SYNC_STRATEGY.md 中的同步脚本
|
|
793
|
+
|
|
794
|
+
---
|
|
795
|
+
|
|
796
|
+
### TASK-4.2: 创建同步状态检查脚本
|
|
797
|
+
|
|
798
|
+
**目标**: 创建 scripts/check-sync-status.sh
|
|
799
|
+
|
|
800
|
+
**前置条件**:
|
|
801
|
+
- TASK-4.1 完成
|
|
802
|
+
|
|
803
|
+
**执行步骤**:
|
|
804
|
+
1. 创建检查脚本
|
|
805
|
+
2. 添加执行权限
|
|
806
|
+
|
|
807
|
+
**验收标准**:
|
|
808
|
+
- [ ] 脚本存在且可执行
|
|
809
|
+
- [ ] 语法正确
|
|
810
|
+
|
|
811
|
+
**测试命令**:
|
|
812
|
+
```bash
|
|
813
|
+
bash -n scripts/check-sync-status.sh
|
|
814
|
+
```
|
|
815
|
+
|
|
816
|
+
**回滚方案**:
|
|
817
|
+
```bash
|
|
818
|
+
rm scripts/check-sync-status.sh
|
|
819
|
+
```
|
|
820
|
+
|
|
821
|
+
---
|
|
822
|
+
|
|
823
|
+
### TASK-4.3: 创建 GitHub Actions - 同步到独立仓库
|
|
824
|
+
|
|
825
|
+
**目标**: 创建自动同步 workflow
|
|
826
|
+
|
|
827
|
+
**前置条件**:
|
|
828
|
+
- TASK-4.2 完成
|
|
829
|
+
|
|
830
|
+
**执行步骤**:
|
|
831
|
+
1. 创建 .github/workflows/sync-to-independent-repos.yml
|
|
832
|
+
2. 配置矩阵构建
|
|
833
|
+
3. 验证 YAML 语法
|
|
834
|
+
|
|
835
|
+
**验收标准**:
|
|
836
|
+
- [ ] workflow 文件存在
|
|
837
|
+
- [ ] YAML 语法正确
|
|
838
|
+
- [ ] 包含所有7个包的同步配置
|
|
839
|
+
|
|
840
|
+
**测试命令**:
|
|
841
|
+
```bash
|
|
842
|
+
cat .github/workflows/sync-to-independent-repos.yml
|
|
843
|
+
# 验证 YAML
|
|
844
|
+
python3 -c "import yaml; yaml.safe_load(open('.github/workflows/sync-to-independent-repos.yml'))" 2>/dev/null || echo "YAML is valid"
|
|
845
|
+
```
|
|
846
|
+
|
|
847
|
+
**回滚方案**:
|
|
848
|
+
```bash
|
|
849
|
+
rm .github/workflows/sync-to-independent-repos.yml
|
|
850
|
+
```
|
|
851
|
+
|
|
852
|
+
**输出文件**:
|
|
853
|
+
参考 MONOREPO_SYNC_STRATEGY.md 中的 GitHub Actions 配置
|
|
854
|
+
|
|
855
|
+
---
|
|
856
|
+
|
|
857
|
+
### TASK-4.4: 创建 GitHub Actions - 反向同步
|
|
858
|
+
|
|
859
|
+
**目标**: 创建从独立仓库同步回 monorepo 的 workflow
|
|
860
|
+
|
|
861
|
+
**前置条件**:
|
|
862
|
+
- TASK-4.3 完成
|
|
863
|
+
|
|
864
|
+
**执行步骤**:
|
|
865
|
+
1. 创建 .github/workflows/sync-from-independent-repos.yml
|
|
866
|
+
2. 验证配置
|
|
867
|
+
|
|
868
|
+
**验收标准**:
|
|
869
|
+
- [ ] workflow 文件存在
|
|
870
|
+
- [ ] 配置正确
|
|
871
|
+
|
|
872
|
+
**测试命令**:
|
|
873
|
+
```bash
|
|
874
|
+
ls -la .github/workflows/sync-from-independent-repos.yml
|
|
875
|
+
```
|
|
876
|
+
|
|
877
|
+
**回滚方案**:
|
|
878
|
+
```bash
|
|
879
|
+
rm .github/workflows/sync-from-independent-repos.yml
|
|
880
|
+
```
|
|
881
|
+
|
|
882
|
+
---
|
|
883
|
+
|
|
884
|
+
### TASK-4.5: 配置 Changesets
|
|
885
|
+
|
|
886
|
+
**目标**: 安装并配置 Changesets 用于版本管理
|
|
887
|
+
|
|
888
|
+
**前置条件**:
|
|
889
|
+
- TASK-4.4 完成
|
|
890
|
+
|
|
891
|
+
**执行步骤**:
|
|
892
|
+
1. 安装 @changesets/cli: `pnpm add -D @changesets/cli`
|
|
893
|
+
2. 初始化: `pnpm changeset init`
|
|
894
|
+
3. 配置 .changeset/config.json
|
|
895
|
+
4. 更新根 package.json 添加 scripts
|
|
896
|
+
|
|
897
|
+
**验收标准**:
|
|
898
|
+
- [ ] @changesets/cli 已安装
|
|
899
|
+
- [ ] .changeset/ 目录存在
|
|
900
|
+
- [ ] config.json 已配置
|
|
901
|
+
- [ ] package.json 包含 changeset 相关 scripts
|
|
902
|
+
|
|
903
|
+
**测试命令**:
|
|
904
|
+
```bash
|
|
905
|
+
ls -la .changeset/
|
|
906
|
+
cat .changeset/config.json
|
|
907
|
+
cat package.json | jq '.scripts | with_entries(select(.key | contains("changeset")))'
|
|
908
|
+
```
|
|
909
|
+
|
|
910
|
+
**回滚方案**:
|
|
911
|
+
```bash
|
|
912
|
+
rm -rf .changeset/
|
|
913
|
+
pnpm remove @changesets/cli
|
|
914
|
+
```
|
|
915
|
+
|
|
916
|
+
---
|
|
917
|
+
|
|
918
|
+
## 阶段 5: 测试与验证
|
|
919
|
+
|
|
920
|
+
### TASK-5.1: 构建所有包
|
|
921
|
+
|
|
922
|
+
**目标**: 验证所有包可以成功构建
|
|
923
|
+
|
|
924
|
+
**前置条件**:
|
|
925
|
+
- TASK-4.5 完成
|
|
926
|
+
- 所有依赖已安装
|
|
927
|
+
|
|
928
|
+
**执行步骤**:
|
|
929
|
+
1. 运行 `pnpm build`
|
|
930
|
+
2. 检查构建输出
|
|
931
|
+
3. 验证 dist 目录
|
|
932
|
+
4. 记录构建时间
|
|
933
|
+
|
|
934
|
+
**验收标准**:
|
|
935
|
+
- [ ] 构建成功无错误
|
|
936
|
+
- [ ] 所有包的 dist/ 目录存在
|
|
937
|
+
- [ ] 构建报告输出到 `reports/build-result.txt`
|
|
938
|
+
|
|
939
|
+
**测试命令**:
|
|
940
|
+
```bash
|
|
941
|
+
pnpm build 2>&1 | tee reports/build-result.txt
|
|
942
|
+
for pkg in packages/*/; do
|
|
943
|
+
echo "Checking $pkg"
|
|
944
|
+
ls -la "$pkg/dist/" || echo "No dist in $pkg"
|
|
945
|
+
done
|
|
946
|
+
```
|
|
947
|
+
|
|
948
|
+
**回滚方案**:
|
|
949
|
+
```bash
|
|
950
|
+
pnpm clean
|
|
951
|
+
```
|
|
952
|
+
|
|
953
|
+
---
|
|
954
|
+
|
|
955
|
+
### TASK-5.2: 运行所有测试
|
|
956
|
+
|
|
957
|
+
**目标**: 验证所有测试通过
|
|
958
|
+
|
|
959
|
+
**前置条件**:
|
|
960
|
+
- TASK-5.1 完成
|
|
961
|
+
|
|
962
|
+
**执行步骤**:
|
|
963
|
+
1. 运行 `pnpm test`
|
|
964
|
+
2. 收集测试结果
|
|
965
|
+
3. 生成覆盖率报告(如果有)
|
|
966
|
+
|
|
967
|
+
**验收标准**:
|
|
968
|
+
- [ ] 所有测试通过
|
|
969
|
+
- [ ] 测试报告输出到 `reports/test-result.txt`
|
|
970
|
+
|
|
971
|
+
**测试命令**:
|
|
972
|
+
```bash
|
|
973
|
+
pnpm test 2>&1 | tee reports/test-result.txt
|
|
974
|
+
tail -20 reports/test-result.txt
|
|
975
|
+
```
|
|
976
|
+
|
|
977
|
+
**回滚方案**:
|
|
978
|
+
- 无需回滚(只读操作)
|
|
979
|
+
|
|
980
|
+
---
|
|
981
|
+
|
|
982
|
+
### TASK-5.3: 验证 Turborepo 缓存
|
|
983
|
+
|
|
984
|
+
**目标**: 验证增量构建和缓存功能
|
|
985
|
+
|
|
986
|
+
**前置条件**:
|
|
987
|
+
- TASK-5.2 完成
|
|
988
|
+
|
|
989
|
+
**执行步骤**:
|
|
990
|
+
1. 清理构建: `pnpm clean`
|
|
991
|
+
2. 首次构建: `pnpm build`
|
|
992
|
+
3. 再次构建: `pnpm build`
|
|
993
|
+
4. 对比构建时间
|
|
994
|
+
5. 验证 FULL TURBO 输出
|
|
995
|
+
|
|
996
|
+
**验收标准**:
|
|
997
|
+
- [ ] 第二次构建显示缓存命中
|
|
998
|
+
- [ ] 看到 "FULL TURBO" 或 "cache hit"
|
|
999
|
+
- [ ] 缓存报告输出到 `reports/cache-validation.txt`
|
|
1000
|
+
|
|
1001
|
+
**测试命令**:
|
|
1002
|
+
```bash
|
|
1003
|
+
pnpm clean
|
|
1004
|
+
echo "=== First build ===" > reports/cache-validation.txt
|
|
1005
|
+
time pnpm build 2>&1 | tee -a reports/cache-validation.txt
|
|
1006
|
+
echo "=== Second build (should use cache) ===" >> reports/cache-validation.txt
|
|
1007
|
+
time pnpm build 2>&1 | tee -a reports/cache-validation.txt
|
|
1008
|
+
cat reports/cache-validation.txt
|
|
1009
|
+
```
|
|
1010
|
+
|
|
1011
|
+
**回滚方案**:
|
|
1012
|
+
```bash
|
|
1013
|
+
rm -rf .turbo
|
|
1014
|
+
```
|
|
1015
|
+
|
|
1016
|
+
---
|
|
1017
|
+
|
|
1018
|
+
### TASK-5.4: 验证 workspace 协议
|
|
1019
|
+
|
|
1020
|
+
**目标**: 确认 workspace:* 正确工作
|
|
1021
|
+
|
|
1022
|
+
**前置条件**:
|
|
1023
|
+
- TASK-5.3 完成
|
|
1024
|
+
|
|
1025
|
+
**执行步骤**:
|
|
1026
|
+
1. 检查 node_modules 中的软链接
|
|
1027
|
+
2. 修改一个包的代码
|
|
1028
|
+
3. 验证其他包能立即使用
|
|
1029
|
+
4. 生成 workspace 验证报告
|
|
1030
|
+
|
|
1031
|
+
**验收标准**:
|
|
1032
|
+
- [ ] workspace 包是软链接
|
|
1033
|
+
- [ ] 修改即时生效
|
|
1034
|
+
- [ ] 验证报告: `reports/workspace-validation.txt`
|
|
1035
|
+
|
|
1036
|
+
**测试命令**:
|
|
1037
|
+
```bash
|
|
1038
|
+
echo "Checking workspace links..." > reports/workspace-validation.txt
|
|
1039
|
+
ls -la node_modules/.pnpm/node_modules/koatty_* >> reports/workspace-validation.txt 2>&1 || \
|
|
1040
|
+
ls -la node_modules/koatty_* >> reports/workspace-validation.txt 2>&1
|
|
1041
|
+
cat reports/workspace-validation.txt
|
|
1042
|
+
```
|
|
1043
|
+
|
|
1044
|
+
**回滚方案**:
|
|
1045
|
+
- 无需回滚
|
|
1046
|
+
|
|
1047
|
+
---
|
|
1048
|
+
|
|
1049
|
+
### TASK-5.5: 创建测试应用
|
|
1050
|
+
|
|
1051
|
+
**目标**: 在 apps/demo 创建测试应用
|
|
1052
|
+
|
|
1053
|
+
**前置条件**:
|
|
1054
|
+
- TASK-5.4 完成
|
|
1055
|
+
|
|
1056
|
+
**执行步骤**:
|
|
1057
|
+
1. 创建 apps/demo 目录
|
|
1058
|
+
2. 创建 package.json
|
|
1059
|
+
3. 引用 monorepo 包
|
|
1060
|
+
4. 创建简单的测试代码
|
|
1061
|
+
5. 验证可以运行
|
|
1062
|
+
|
|
1063
|
+
**验收标准**:
|
|
1064
|
+
- [ ] apps/demo 存在
|
|
1065
|
+
- [ ] 可以成功引用 koatty 包
|
|
1066
|
+
- [ ] 可以构建和运行
|
|
1067
|
+
|
|
1068
|
+
**测试命令**:
|
|
1069
|
+
```bash
|
|
1070
|
+
cd apps/demo
|
|
1071
|
+
pnpm install
|
|
1072
|
+
pnpm build
|
|
1073
|
+
```
|
|
1074
|
+
|
|
1075
|
+
**回滚方案**:
|
|
1076
|
+
```bash
|
|
1077
|
+
rm -rf apps/demo
|
|
1078
|
+
```
|
|
1079
|
+
|
|
1080
|
+
---
|
|
1081
|
+
|
|
1082
|
+
### TASK-5.6: 生成最终报告
|
|
1083
|
+
|
|
1084
|
+
**目标**: 生成完整的迁移验证报告
|
|
1085
|
+
|
|
1086
|
+
**前置条件**:
|
|
1087
|
+
- TASK-5.5 完成
|
|
1088
|
+
|
|
1089
|
+
**执行步骤**:
|
|
1090
|
+
1. 汇总所有 reports/ 中的文件
|
|
1091
|
+
2. 生成迁移检查清单
|
|
1092
|
+
3. 生成下一步建议
|
|
1093
|
+
4. 创建 MIGRATION_COMPLETE.md
|
|
1094
|
+
|
|
1095
|
+
**验收标准**:
|
|
1096
|
+
- [ ] reports/ 包含所有阶段的报告
|
|
1097
|
+
- [ ] MIGRATION_COMPLETE.md 存在
|
|
1098
|
+
- [ ] 包含成功/失败统计
|
|
1099
|
+
- [ ] 包含下一步行动建议
|
|
1100
|
+
|
|
1101
|
+
**测试命令**:
|
|
1102
|
+
```bash
|
|
1103
|
+
ls -la reports/
|
|
1104
|
+
cat MIGRATION_COMPLETE.md
|
|
1105
|
+
```
|
|
1106
|
+
|
|
1107
|
+
**回滚方案**:
|
|
1108
|
+
- 无需回滚
|
|
1109
|
+
|
|
1110
|
+
**输出文件**:
|
|
1111
|
+
```markdown
|
|
1112
|
+
# MIGRATION_COMPLETE.md
|
|
1113
|
+
|
|
1114
|
+
## 迁移状态: ✅ 成功
|
|
1115
|
+
|
|
1116
|
+
### 完成的任务
|
|
1117
|
+
- [x] 环境准备 (3/3)
|
|
1118
|
+
- [x] 创建 Monorepo (5/5)
|
|
1119
|
+
- [x] 迁移核心包 (8/8)
|
|
1120
|
+
- [x] 配置构建系统 (6/6)
|
|
1121
|
+
- [x] 配置自动同步 (5/5)
|
|
1122
|
+
- [x] 测试与验证 (6/6)
|
|
1123
|
+
|
|
1124
|
+
### 迁移统计
|
|
1125
|
+
- 迁移的包: 7个
|
|
1126
|
+
- 保持独立: 4个 (koatty_container, koatty_lib, koatty_loader, koatty_logger)
|
|
1127
|
+
- 构建状态: ✅ 成功
|
|
1128
|
+
- 测试状态: ✅ 通过
|
|
1129
|
+
- Turborepo 缓存: ✅ 工作正常
|
|
1130
|
+
|
|
1131
|
+
### 下一步行动
|
|
1132
|
+
1. [ ] 提交初始 commit
|
|
1133
|
+
2. [ ] 推送到 GitHub
|
|
1134
|
+
3. [ ] 配置 SYNC_TOKEN secret
|
|
1135
|
+
4. [ ] 测试 GitHub Actions
|
|
1136
|
+
5. [ ] 更新文档
|
|
1137
|
+
6. [ ] 通知团队
|
|
1138
|
+
|
|
1139
|
+
### 验证命令
|
|
1140
|
+
\```bash
|
|
1141
|
+
# 开发
|
|
1142
|
+
pnpm dev
|
|
1143
|
+
|
|
1144
|
+
# 构建
|
|
1145
|
+
pnpm build
|
|
1146
|
+
|
|
1147
|
+
# 测试
|
|
1148
|
+
pnpm test
|
|
1149
|
+
|
|
1150
|
+
# 同步
|
|
1151
|
+
./scripts/sync-to-repos.sh
|
|
1152
|
+
\```
|
|
1153
|
+
|
|
1154
|
+
### 相关文档
|
|
1155
|
+
- [docs/README_MONOREPO.md](docs/README_MONOREPO.md)
|
|
1156
|
+
- [docs/MONOREPO_ARCHITECTURE.md](docs/MONOREPO_ARCHITECTURE.md)
|
|
1157
|
+
- [docs/MONOREPO_SYNC_STRATEGY.md](docs/MONOREPO_SYNC_STRATEGY.md)
|
|
1158
|
+
```
|
|
1159
|
+
|
|
1160
|
+
---
|
|
1161
|
+
|
|
1162
|
+
## 附录
|
|
1163
|
+
|
|
1164
|
+
### A. 任务执行规范
|
|
1165
|
+
|
|
1166
|
+
1. **顺序执行**: 必须按照 TASK-X.Y 的顺序执行
|
|
1167
|
+
2. **验收确认**: 每个任务完成后必须通过所有验收标准
|
|
1168
|
+
3. **测试命令**: 必须运行测试命令验证结果
|
|
1169
|
+
4. **报告输出**: 重要任务需要生成报告文件
|
|
1170
|
+
5. **回滚能力**: 如果任务失败,使用回滚方案恢复
|
|
1171
|
+
|
|
1172
|
+
### B. 常用命令
|
|
1173
|
+
|
|
1174
|
+
```bash
|
|
1175
|
+
# 查看当前状态
|
|
1176
|
+
git status
|
|
1177
|
+
pnpm list --depth=1
|
|
1178
|
+
|
|
1179
|
+
# 清理
|
|
1180
|
+
pnpm clean
|
|
1181
|
+
rm -rf node_modules pnpm-lock.yaml
|
|
1182
|
+
|
|
1183
|
+
# 重新安装
|
|
1184
|
+
pnpm install
|
|
1185
|
+
|
|
1186
|
+
# 构建
|
|
1187
|
+
pnpm build
|
|
1188
|
+
|
|
1189
|
+
# 测试
|
|
1190
|
+
pnpm test
|
|
1191
|
+
```
|
|
1192
|
+
|
|
1193
|
+
### C. 报告文件清单
|
|
1194
|
+
|
|
1195
|
+
- `reports/node-version.txt` - Node.js 版本
|
|
1196
|
+
- `reports/pnpm-version.txt` - pnpm 版本
|
|
1197
|
+
- `reports/backup-branch.txt` - 备份分支名
|
|
1198
|
+
- `reports/directory-structure.txt` - 目录结构
|
|
1199
|
+
- `reports/git-remotes.txt` - Git remotes
|
|
1200
|
+
- `reports/migration-summary.txt` - 迁移摘要
|
|
1201
|
+
- `reports/dependencies.txt` - 依赖关系
|
|
1202
|
+
- `reports/dependency-tree.txt` - 依赖树
|
|
1203
|
+
- `reports/build-result.txt` - 构建结果
|
|
1204
|
+
- `reports/test-result.txt` - 测试结果
|
|
1205
|
+
- `reports/cache-validation.txt` - 缓存验证
|
|
1206
|
+
- `reports/workspace-validation.txt` - Workspace 验证
|
|
1207
|
+
|
|
1208
|
+
### D. 检查清单
|
|
1209
|
+
|
|
1210
|
+
完成所有任务后,确认:
|
|
1211
|
+
|
|
1212
|
+
- [ ] 所有33个任务都已完成
|
|
1213
|
+
- [ ] 所有验收标准都通过
|
|
1214
|
+
- [ ] 所有测试命令都成功
|
|
1215
|
+
- [ ] reports/ 目录包含所有报告
|
|
1216
|
+
- [ ] MIGRATION_COMPLETE.md 已生成
|
|
1217
|
+
- [ ] 可以运行 pnpm build 和 pnpm test
|
|
1218
|
+
- [ ] workspace 协议正常工作
|
|
1219
|
+
- [ ] Turborepo 缓存正常工作
|
|
1220
|
+
|
|
1221
|
+
---
|
|
1222
|
+
|
|
1223
|
+
**任务清单版本**: 1.0
|
|
1224
|
+
**创建日期**: 2025-10-22
|
|
1225
|
+
**预计执行时间**: 5-7天
|
|
1226
|
+
**目标**: 完成 Koatty Monorepo 迁移
|
|
1227
|
+
|