环境管理器设计方案
技术栈:Electron + React + TypeScript + better-sqlite3
1. 项目定位
环境管理器是一个面向开发者的桌面工具,用于统一管理本机开发环境、运行任务、启动本地服务和打开集成终端。
它解决的问题包括:
1. 自动发现本机已安装的开发工具,例如 Java、Node.js、Python、uv、Git、Maven 等。
2. 统一维护开发工具路径、版本和环境变量。
3. 支持一键执行多步骤任务,例如项目初始化、依赖安装、构建、启动。
4. 支持管理本地开发服务,例如前端服务、后端服务、数据库、网关服务。
5. 提供内置多标签终端,并自动继承已配置好的环境变量。
6. 跨平台支持 Windows、macOS、Linux。
2. 总体架构
系统采用 Electron 的典型三层结构:
Renderer Process
React UI / Zustand / xterm.js
|
| 受限 IPC API
v
Preload Layer
contextBridge 安全暴露 API
|
| ipcRenderer.invoke / ipcRenderer.on
v
Main Process
数据库 / 扫描引擎 / 任务执行器 / 服务管理器 / 终端管理器
|
| better-sqlite3 / child_process / node-pty / fs / path
v
Local System
文件系统 / PATH / 注册表 / Shell / 本地进程2.1 设计原则
1. 渲染进程只负责 UI,不直接访问系统能力。
2. 主进程负责所有本地能力,包括数据库、进程、终端、扫描。
3. preload 只暴露白名单 API,不暴露 ipcRenderer。
4. 数据库只保存配置和历史状态,不保存实时进程对象。
5. 进程状态以内存为准,数据库只做启动后的恢复参考。
6. 任务、服务、终端三类运行实体分开管理,避免职责混乱。
B友们,有没有类似的应用推荐可做参考的