3.9 KiB
3.9 KiB
🚀 工作流设计器迁移指南
✅ 迁移前检查清单
- 重构版本功能正常
- 保存功能已验证
- 无限循环问题已解决
- 调试代码已清理
- 所有核心功能已测试
🎯 迁移方案选择
方案 1:安全备份替换(推荐)⭐
适合场景:生产环境,风险控制 优点:最安全,可快速回滚
# 1. 备份原始文件
mv src/pages/Workflow/Definition/Design/index.tsx src/pages/Workflow/Definition/Design/index.tsx.backup
# 2. 重命名重构版本为新的主文件
mv src/pages/Workflow/Definition/Design/RefactoredIndex.tsx src/pages/Workflow/Definition/Design/index.tsx
# 3. 测试验证无问题后,删除备份(可选)
# rm src/pages/Workflow/Definition/Design/index.tsx.backup
方案 2:路由导入切换
适合场景:快速验证,多环境测试 优点:不需要重命名文件
// 修改 src/router/index.tsx 第34行
// 原来:
const WorkflowDesign = lazy(() => import('../pages/Workflow/Definition/Design'));
// 改为:
const WorkflowDesign = lazy(() => import('../pages/Workflow/Definition/Design/RefactoredIndex'));
方案 3:渐进式迁移
适合场景:团队协作,逐步验证 优点:可以长期并行存在
保持两个版本同时存在,通过不同路由访问:
- 原版:
/workflow/definition/:id/design - 重构版:
/workflow/definition/:id/design-refactored
🚀 执行迁移(推荐方案1)
步骤 1:执行文件替换
# 在项目根目录执行
cd src/pages/Workflow/Definition/Design/
# 备份原文件
mv index.tsx index.tsx.backup
# 重构版本成为新的主文件
mv RefactoredIndex.tsx index.tsx
步骤 2:清理测试路由
如果不再需要测试路由,可以清理:
// src/router/index.tsx 中删除这些行:
const WorkflowDesignRefactored = lazy(() => import('../pages/Workflow/Definition/Design/RefactoredIndex'));
// 删除这个路由配置:
{
path: ':id/design-refactored',
element: (
<Suspense fallback={<LoadingComponent/>}>
<WorkflowDesignRefactored/>
</Suspense>
)
}
步骤 3:验证迁移
-
重启开发服务器:
pnpm dev -
访问原路径验证:
http://localhost:3000/workflow/definition/3/design -
功能完整性测试:
- 页面正常加载
- 节点面板显示正常
- 拖拽节点功能正常
- 节点双击编辑正常
- 连线功能正常
- 工具栏所有按钮正常
- 保存功能正常
- 撤销/重做功能正常
🔄 回滚方案
如果发现问题需要回滚:
# 快速回滚到原版本
mv index.tsx index.tsx.refactored
mv index.tsx.backup index.tsx
# 重启开发服务器
pnpm dev
🧹 清理工作
迁移成功并稳定运行后,可以清理不需要的文件:
# 删除备份文件
rm index.tsx.backup
# 删除重构相关文档(可选)
rm README.md TESTING.md BUGFIX.md BUGFIX-V2.md MIGRATION.md
📊 迁移前后对比
| 文件 | 迁移前 | 迁移后 |
|---|---|---|
| 主组件 | index.tsx (1541行) |
index.tsx (原RefactoredIndex.tsx, 131行) |
| 代码结构 | 单体架构 | 模块化架构 |
| 文件数量 | 1个主文件 | 13个模块文件 |
| 可维护性 | 低 | 高 |
| 功能完整性 | ✅ | ✅ |
🎉 迁移完成验证
迁移完成后,你应该看到:
- ✅ 所有功能正常工作
- ✅ 页面加载流畅
- ✅ 代码结构清晰
- ✅ 便于后续维护
📞 技术支持
如果迁移过程中遇到问题:
- 首先尝试回滚到备份版本
- 检查控制台错误信息
- 对比新旧版本的差异
- 逐步验证各个功能模块
恭喜!你已经成功从 1541 行的单体代码重构为现代化的模块架构! 🎊