Skip to content

[1.5.2 Patch][P2] 前端 main.ts 拆分为 feature modules,降低白屏和回归风险 #82

Description

@weidonglang

背景

当前前端入口文件 src/main.ts 承载了大量类型、状态、页面逻辑和功能入口。随着端口管理、MySQL 修复、Python 分析、安全声明、功能说明、环境可靠性等功能继续增强,单文件复杂度会持续上升。

风险

  • 小改动容易引发大范围回归。
  • Codex 修改时容易在同一大文件里冲突或改坏。
  • 白屏问题定位困难。
  • 组件测试困难。
  • 类型定义、API 调用、UI 渲染耦合严重。

修复目标

在不重写 UI 的前提下,做一次低风险模块化拆分。

建议目录结构

src/types/
src/api/
src/components/
src/pages/
src/features/ports/
src/features/mysql/
src/features/python/
src/features/safety/
src/features/environment/
src/features/runtime/
src/features/cleanup/

拆分原则

  1. 不重做视觉风格。
  2. 不一次性大重构业务逻辑。
  3. 每次移动一个功能区,保证可编译。
  4. 类型先拆到 src/types
  5. Tauri invoke 封装到 src/api
  6. 端口管理相关放到 features/ports
  7. MySQL 相关放到 features/mysql
  8. Python 分析相关放到 features/python
  9. 安全声明、功能说明、风险徽章放到 features/safetycomponents

必须优先拆分的模块

  • PortRecord / PortHistory / 端口 UI。
  • MySqlRepairReport / MySqlRepairPlan / MySQL UI。
  • PythonAnalysis / PythonRepairPlan / Python UI。
  • FeatureRiskInfo / safety disclaimer / feature help。
  • EnvReliabilitySnapshot。

测试要求

验收标准

  • main.ts 明显减小,只保留应用启动、顶层路由和少量全局状态。
  • 核心 feature 有独立文件夹。
  • npm run build 通过。
  • docs/release-v1.5.2.md 记录该可维护性改进。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions