- Add GoManager service for downloading and managing Go versions - Implement Go version detection and installation - Add GoManager Vue component with version selection UI - Update main process to handle Go-related IPC calls - Add Jest testing configuration and GoManager unit tests - Update service store to include Go management - Add routing for Go manager page - Include Kiro specs and steering documentation
3.7 KiB
3.7 KiB
项目结构和组织
目录结构
核心目录
phper/
├── electron/ # Electron 主进程代码
│ ├── main.ts # 主进程入口,IPC 处理
│ ├── preload.ts # 预加载脚本,安全的 IPC 桥接
│ └── services/ # 服务管理模块
│ ├── ConfigStore.ts # 配置存储管理
│ ├── ServiceManager.ts # 统一服务管理
│ ├── *Manager.ts # 各服务专用管理器
│ └── __tests__/ # 服务层单元测试
│
├── src/ # Vue 前端源码
│ ├── App.vue # 根组件,包含布局和导航
│ ├── main.ts # 前端入口文件
│ ├── router/ # Vue Router 配置
│ ├── stores/ # Pinia 状态管理
│ ├── components/ # 可复用组件
│ ├── views/ # 页面组件
│ └── styles/ # 全局样式和主题
│
├── data/ # 运行时数据目录
├── service/ # 服务安装目录
├── build/ # 构建资源
├── release/ # 打包输出
└── scripts/ # 构建脚本
架构模式
Electron 架构
- 主进程 (
electron/main.ts): 窗口管理、系统集成、IPC 处理 - 渲染进程 (
src/): Vue 应用,用户界面 - 预加载脚本 (
electron/preload.ts): 安全的 API 暴露
服务管理架构
- ServiceManager: 统一的服务生命周期管理
- 专用管理器: 每个服务(PHP、MySQL、Nginx等)有独立的管理类
- ConfigStore: 集中的配置管理,基于 electron-store
前端架构
- 组件化: 使用 Vue 3 Composition API
- 状态管理: Pinia stores 管理应用状态
- 路由管理: Vue Router 4 单页面应用
- UI 组件: Element Plus 提供一致的界面体验
命名约定
文件命名
- 组件文件: PascalCase (如
PhpManager.vue) - 服务文件: PascalCase + Manager 后缀 (如
MysqlManager.ts) - 工具文件: camelCase (如
configStore.ts) - 测试文件:
*.test.ts后缀
代码约定
- 接口:
I前缀 (如IServiceStatus) - 类型: PascalCase (如
ServiceConfig) - 常量: UPPER_SNAKE_CASE
- 函数/变量: camelCase
关键文件说明
配置文件
package.json: 项目依赖和构建脚本vite.config.ts: Vite 构建配置,包含 Electron 插件tsconfig.json: TypeScript 编译配置jest.config.js: 测试框架配置
入口文件
index.html: HTML 模板src/main.ts: Vue 应用入口electron/main.ts: Electron 主进程入口
服务管理
- 每个服务管理器负责:下载、安装、配置、启动/停止、状态检查
- 使用 Windows 原生命令和进程管理
- 支持多版本并存(PHP、MySQL、Node.js)
数据流
- 用户操作 → Vue 组件
- 组件事件 → Pinia Store 或直接 IPC 调用
- IPC 通信 → Electron 主进程
- 服务调用 → 对应的 Manager 类
- 系统操作 → Windows 命令/进程
- 状态更新 → 通过 IPC 返回到前端
扩展指南
添加新服务
- 创建
*Manager.ts在electron/services/ - 在
main.ts中注册 IPC 处理程序 - 创建对应的 Vue 页面组件
- 添加路由和导航菜单项
- 更新
ServiceManager.ts集成新服务
添加新功能
- 前端功能:在
src/views/添加页面组件 - 后端功能:在对应的 Manager 类中添加方法
- 通用组件:在
src/components/创建可复用组件