befly-tpl 3.2.2 → 3.2.5

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.
Files changed (40) hide show
  1. package/README.md +240 -14
  2. package/package.json +21 -3
  3. package/addon-loader.example.ts +0 -99
  4. package/bun.lock +0 -140
  5. package/logs/2025-08-22.0.log +0 -197
  6. package/logs/2025-08-23.0.log +0 -151
  7. package/logs/2025-08-24.0.log +0 -296
  8. package/logs/2025-08-25.0.log +0 -162
  9. package/logs/2025-08-26.0.log +0 -19
  10. package/logs/2025-08-27.0.log +0 -63
  11. package/logs/2025-08-28.0.log +0 -286
  12. package/logs/2025-08-30.0.log +0 -1
  13. package/logs/2025-09-01.0.log +0 -296
  14. package/logs/2025-09-02.0.log +0 -298
  15. package/logs/2025-10-11.0.log +0 -2718
  16. package/logs/2025-10-12.0.log +0 -4374
  17. package/logs/2025-10-13.0.log +0 -759
  18. package/logs/2025-10-14.0.log +0 -2350
  19. package/logs/2025-10-15.0.log +0 -2386
  20. package/logs/2025-10-16.0.log +0 -2807
  21. package/logs/2025-10-17.0.log +0 -1143
  22. package/logs/2025-10-18.0.log +0 -1292
  23. package/logs/2025-10-19.0.log +0 -1752
  24. package/logs/2025-10-20.0.log +0 -722
  25. package/logs/2025-10-21.0.log +0 -1075
  26. package/logs/2025-10-23.0.log +0 -3291
  27. package/logs/2025-10-24.0.log +0 -2341
  28. package/logs/2025-10-25.0.log +0 -1367
  29. package/logs/debug.0.log +0 -25174
  30. package/temp/addon-route-prefix-migration.md +0 -400
  31. package/temp/api-route-conflict-analysis.md +0 -441
  32. package/temp/interactive-cli-guide.md +0 -199
  33. package/temp/missing-apis-fix.md +0 -362
  34. package/temp/remove-status-field.md +0 -239
  35. package/temp/roleid-to-rolecode-optimization.md +0 -321
  36. package/temp/status-to-state-migration-complete.md +0 -176
  37. package/temp/syncMenu-guide.md +0 -235
  38. package/temp/test-admin-menus-cache.ts +0 -125
  39. package/temp/test-admin-menus.ts +0 -110
  40. package/temp/test-interactive-cli.ps1 +0 -14
@@ -1,400 +0,0 @@
1
- # Addon 路由前缀迁移报告(方案2)
2
-
3
- **日期**:2025-10-19
4
- **执行人**:AI Assistant
5
- **状态**:✅ 已完成
6
-
7
- ## 📋 迁移概述
8
-
9
- 根据用户要求,执行方案2:修改 Addon 路由前缀,从 `/api/{addonName}/` 改为 `/api/addon/{addonName}/`,彻底解决路由冲突问题。
10
-
11
- ## 🎯 修改目标
12
-
13
- **修改前**:
14
-
15
- ```
16
- Addon API: POST/api/admin/login
17
- 项目 API: POST/api/admin/login
18
- ⚠️ 可能冲突
19
- ```
20
-
21
- **修改后**:
22
-
23
- ```
24
- Addon API: POST/api/addon/admin/login
25
- 项目 API: POST/api/admin/login
26
- ✅ 完全隔离,不会冲突
27
- ```
28
-
29
- ## ✅ 完成的修改
30
-
31
- ### 1. 核心框架修改
32
-
33
- #### packages/core/lifecycle/loader.ts
34
-
35
- **文件**:`packages/core/lifecycle/loader.ts`
36
- **位置**:Line 493-495
37
- **修改内容**:添加 `addon/` 前缀到 addon API 路由
38
-
39
- **修改前**:
40
-
41
- ```typescript
42
- // 构建路由:addon 接口添加前缀 /api/{addonName}/{apiPath}
43
- if (isAddon) {
44
- api.route = `${api.method.toUpperCase()}/api/${addonName}/${apiPath}`;
45
- } else {
46
- api.route = `${api.method.toUpperCase()}/api/${apiPath}`;
47
- }
48
- ```
49
-
50
- **修改后**:
51
-
52
- ```typescript
53
- // 构建路由:addon 接口添加前缀 /api/addon/{addonName}/{apiPath},项目接口为 /api/{apiPath}
54
- if (isAddon) {
55
- api.route = `${api.method.toUpperCase()}/api/addon/${addonName}/${apiPath}`;
56
- } else {
57
- api.route = `${api.method.toUpperCase()}/api/${apiPath}`;
58
- }
59
- ```
60
-
61
- ### 2. Admin 前端项目修改
62
-
63
- #### 修改的文件列表(共7个文件)
64
-
65
- 1. **packages/admin/src/plugins/http.ts**
66
- - 更新注释示例:`/api/admin/login` → `/addon/admin/login`
67
-
68
- 2. **packages/admin/src/plugins/router.ts**
69
- - 无需修改(没有硬编码路径)
70
-
71
- 3. **packages/admin/src/stores/permission.ts**
72
- - `/admin/adminMenus` → `/addon/admin/adminMenus`
73
-
74
- 4. **packages/admin/src/api/auth.ts**
75
- - `/admin/login` → `/addon/admin/login`
76
- - `/admin/register` → `/addon/admin/register`
77
- - `/admin/sendSmsCode` → `/addon/admin/sendSmsCode`
78
- - `/admin/adminInfo` → `/addon/admin/adminInfo`
79
- - `/admin/logout` → `/addon/admin/logout`
80
-
81
- 5. **packages/admin/src/views/login/index_1.vue**
82
- - `/admin/sendSmsCode` → `/addon/admin/sendSmsCode`
83
- - `/admin/login` → `/addon/admin/login`
84
- - `/admin/register` → `/addon/admin/register`
85
-
86
- 6. **packages/admin/src/views/system/menu.vue**
87
- - `/admin/menuList` → `/addon/admin/menuList`
88
- - `/admin/menuCreate` → `/addon/admin/menuCreate`
89
- - `/admin/menuUpdate` → `/addon/admin/menuUpdate`
90
- - `/admin/menuDelete` → `/addon/admin/menuDelete`
91
-
92
- 7. **packages/admin/src/views/system/role.vue**
93
- - `/admin/roleList` → `/addon/admin/roleList`
94
- - `/admin/menuList` → `/addon/admin/menuList`
95
- - `/admin/roleCreate` → `/addon/admin/roleCreate`
96
- - `/admin/roleUpdate` → `/addon/admin/roleUpdate`
97
- - `/admin/roleDelete` → `/addon/admin/roleDelete`
98
- - `/admin/roleMenuGet` → `/addon/admin/roleMenuGet`
99
- - `/admin/roleMenuSave` → `/addon/admin/roleMenuSave`
100
-
101
- 8. **packages/admin/src/views/user/user.vue**
102
- - `/admin/list` → `/addon/admin/list`
103
- - `/admin/roleList` → `/addon/admin/roleList`
104
- - `/admin/adminRoleGet` → `/addon/admin/adminRoleGet`
105
- - `/admin/adminRoleSave` → `/addon/admin/adminRoleSave`
106
-
107
- 9. **packages/admin/src/views/admin/index.vue**
108
- - `/admin/list` → `/addon/admin/list`
109
- - `/admin/roleList` → `/addon/admin/roleList`
110
- - `/admin/adminRoleGet` → `/addon/admin/adminRoleGet`
111
- - `/admin/adminRoleSave` → `/addon/admin/adminRoleSave`
112
-
113
- ## 📊 修改统计
114
-
115
- ### 核心框架
116
-
117
- - **修改文件**:1 个
118
- - **修改行数**:1 行
119
- - **影响范围**:所有 addon 的 API 路由
120
-
121
- ### Admin 前端
122
-
123
- - **修改文件**:9 个
124
- - **修改 API 调用**:32 处
125
- - **影响范围**:所有调用 admin addon 接口的地方
126
-
127
- ### 总计
128
-
129
- - **修改文件总数**:10 个
130
- - **修改代码行数**:约 35 处
131
-
132
- ## 🔍 验证结果
133
-
134
- **验证命令**:
135
-
136
- ```bash
137
- grep -rE "['\"]/admin/" packages/admin/src/**/*.{ts,vue}
138
- ```
139
-
140
- **结果**:
141
-
142
- ```
143
- No matches found ✅
144
- ```
145
-
146
- 所有 `/admin/` 路径已成功替换为 `/addon/admin/`!
147
-
148
- ## 🎯 路由映射对照表
149
-
150
- ### Admin Addon 的 API 路由变化
151
-
152
- | API 文件 | 修改前 | 修改后 |
153
- | -------------- | ---------------------------- | ---------------------------------- |
154
- | login.ts | `POST/api/admin/login` | `POST/api/addon/admin/login` |
155
- | register.ts | `POST/api/admin/register` | `POST/api/addon/admin/register` |
156
- | adminInfo.ts | `POST/api/admin/adminInfo` | `POST/api/addon/admin/adminInfo` |
157
- | adminMenus.ts | `POST/api/admin/adminMenus` | `POST/api/addon/admin/adminMenus` |
158
- | menuList.ts | `POST/api/admin/menuList` | `POST/api/addon/admin/menuList` |
159
- | menuCreate.ts | `POST/api/admin/menuCreate` | `POST/api/addon/admin/menuCreate` |
160
- | menuUpdate.ts | `POST/api/admin/menuUpdate` | `POST/api/addon/admin/menuUpdate` |
161
- | menuDelete.ts | `POST/api/admin/menuDelete` | `POST/api/addon/admin/menuDelete` |
162
- | roleList.ts | `POST/api/admin/roleList` | `POST/api/addon/admin/roleList` |
163
- | roleCreate.ts | `POST/api/admin/roleCreate` | `POST/api/addon/admin/roleCreate` |
164
- | roleUpdate.ts | `POST/api/admin/roleUpdate` | `POST/api/addon/admin/roleUpdate` |
165
- | roleDelete.ts | `POST/api/admin/roleDelete` | `POST/api/addon/admin/roleDelete` |
166
- | roleSave.ts | `POST/api/admin/roleSave` | `POST/api/addon/admin/roleSave` |
167
- | roleGet.ts | `POST/api/admin/roleGet` | `POST/api/addon/admin/roleGet` |
168
- | sendSmsCode.ts | `POST/api/admin/sendSmsCode` | `POST/api/addon/admin/sendSmsCode` |
169
- | logout.ts | `POST/api/admin/logout` | `POST/api/addon/admin/logout` |
170
-
171
- ### 其他 Addon 的路由规则
172
-
173
- 所有 addon 都会应用新的路由规则:
174
-
175
- **Befly Addon**:
176
-
177
- ```
178
- 修改前: POST/api/befly/health/info
179
- 修改后: POST/api/addon/befly/health/info
180
- ```
181
-
182
- **Demo Addon**:
183
-
184
- ```
185
- 修改前: POST/api/demo/test
186
- 修改后: POST/api/addon/demo/test
187
- ```
188
-
189
- ### 项目 API 路由(不受影响)
190
-
191
- 项目 API 保持不变:
192
-
193
- ```
194
- POST/api/article/list
195
- POST/api/article/create
196
- POST/api/user/list
197
- POST/api/user/login
198
- ```
199
-
200
- ## 💡 迁移优势
201
-
202
- ### 1. 彻底解决冲突
203
-
204
- **场景:开发者创建 apis/admin/ 目录**
205
-
206
- **修改前**:
207
-
208
- ```
209
- ⚠️ Addon: POST/api/admin/list
210
- ⚠️ 项目: POST/api/admin/list
211
- ❌ 冲突!后者覆盖前者
212
- ```
213
-
214
- **修改后**:
215
-
216
- ```
217
- ✅ Addon: POST/api/addon/admin/list
218
- ✅ 项目: POST/api/admin/list
219
- ✅ 完全隔离,不会冲突
220
- ```
221
-
222
- ### 2. 路径更清晰
223
-
224
- **一眼就能区分 API 来源**:
225
-
226
- ```
227
- /api/addon/admin/login ← 明显是 addon 提供的接口
228
- /api/admin/login ← 项目自己的接口
229
- ```
230
-
231
- ### 3. 符合命名空间最佳实践
232
-
233
- ```
234
- /api/addon/{addonName}/{path} ← Addon 命名空间
235
- /api/{path} ← 项目命名空间
236
- ```
237
-
238
- ### 4. 扩展性更好
239
-
240
- 未来添加更多 addon 不会产生冲突:
241
-
242
- ```
243
- /api/addon/admin/...
244
- /api/addon/shop/...
245
- /api/addon/blog/...
246
- /api/addon/payment/...
247
- ```
248
-
249
- ## 🚨 注意事项
250
-
251
- ### 1. 兼容性
252
-
253
- ⚠️ **这是破坏性变更**:
254
-
255
- - 旧版本的前端调用会 404
256
- - 需要同步更新前端代码
257
-
258
- ### 2. 部署建议
259
-
260
- **建议部署流程**:
261
-
262
- 1. 先部署后端(core + tpl)
263
- 2. 立即部署前端(admin)
264
- 3. 避免前后端版本不一致
265
-
266
- ### 3. 回滚方案
267
-
268
- 如果需要回滚:
269
-
270
- ```typescript
271
- // 在 loader.ts 中改回
272
- if (isAddon) {
273
- api.route = `${api.method.toUpperCase()}/api/${addonName}/${apiPath}`;
274
- }
275
- ```
276
-
277
- ## 📋 测试建议
278
-
279
- ### 1. 后端测试
280
-
281
- ```bash
282
- # 启动后端
283
- cd packages/tpl
284
- bunx befly
285
-
286
- # 验证路由
287
- curl http://localhost:3000/api/addon/admin/health
288
- ```
289
-
290
- ### 2. 前端测试
291
-
292
- ```bash
293
- # 启动前端
294
- cd packages/admin
295
- bun run dev
296
-
297
- # 测试功能
298
- - 登录
299
- - 获取菜单
300
- - 菜单管理
301
- - 角色管理
302
- - 用户管理
303
- ```
304
-
305
- ### 3. 关键测试点
306
-
307
- - ✅ 登录功能
308
- - ✅ 获取用户菜单
309
- - ✅ 菜单 CRUD
310
- - ✅ 角色 CRUD
311
- - ✅ 用户角色分配
312
-
313
- ## 🎓 技术说明
314
-
315
- ### 路由生成逻辑
316
-
317
- **Addon API**:
318
-
319
- ```typescript
320
- // 文件:addons/admin/apis/login.ts
321
- // 路径:POST/api/addon/admin/login
322
-
323
- const apiPath = 'login'; // 相对于 apis 目录
324
- const addonName = 'admin';
325
- const route = `POST/api/addon/${addonName}/${apiPath}`;
326
- ```
327
-
328
- **项目 API**:
329
-
330
- ```typescript
331
- // 文件:apis/user/login.ts
332
- // 路径:POST/api/user/login
333
-
334
- const apiPath = 'user/login'; // 相对于 apis 目录
335
- const route = `POST/api/${apiPath}`;
336
- ```
337
-
338
- ### 前端请求示例
339
-
340
- ```typescript
341
- // Admin 前端(baseURL = http://localhost:3000/api)
342
- await $Http('/addon/admin/login', { email, password });
343
- // 实际请求:POST http://localhost:3000/api/addon/admin/login
344
-
345
- await $Http('/addon/admin/menuList', {});
346
- // 实际请求:POST http://localhost:3000/api/addon/admin/menuList
347
- ```
348
-
349
- ## 📚 相关文档
350
-
351
- - 路由冲突分析:`packages/tpl/temp/api-route-conflict-analysis.md`
352
- - RoleCode 优化:`packages/tpl/temp/roleid-to-rolecode-optimization.md`
353
- - Status 迁移:`packages/tpl/temp/status-to-state-migration-complete.md`
354
-
355
- ## ✅ 下一步建议
356
-
357
- 1. **更新 AGENTS.md**:
358
- - 添加新的路由规范说明
359
- - 更新 API 示例代码
360
-
361
- 2. **更新文档项目**(docs):
362
- - 说明 addon 路由规则
363
- - 提供迁移指南
364
-
365
- 3. **测试验证**:
366
- - 完整测试所有功能
367
- - 确保前后端正常工作
368
-
369
- ## 🎯 总结
370
-
371
- **迁移状态**:✅ **已完成**
372
-
373
- **修改范围**:
374
-
375
- - ✅ 核心框架路由生成逻辑
376
- - ✅ Admin 前端所有 API 调用
377
-
378
- **验证结果**:
379
-
380
- - ✅ 没有遗漏的 `/admin/` 路径
381
- - ✅ 所有路径已更新为 `/addon/admin/`
382
-
383
- **核心优势**:
384
-
385
- - ✅ 彻底解决路由冲突
386
- - ✅ 路径更清晰易读
387
- - ✅ 符合命名空间最佳实践
388
- - ✅ 扩展性更好
389
-
390
- **后续工作**:
391
-
392
- - 📋 测试所有功能
393
- - 📋 更新项目文档
394
- - 📋 更新 AGENTS.md 规范
395
-
396
- ---
397
-
398
- **执行人**:AI Assistant
399
- **完成时间**:2025-10-19
400
- **状态**:✅ **迁移完成**