Files
iFlow-Settings-Editor-GUI/README.md

167 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# iFlow Settings Editor
一个基于 Electron + Vue 3 的桌面应用程序,用于编辑 `C:\Users\<USER>\.iflow\settings.json` 配置文件。
## 技术栈
| 技术 | 版本 | 用途 |
|------|------|------|
| Electron | ^28.0.0 | 桌面应用框架 |
| Vue | ^3.4.0 | 前端框架 (组合式 API) |
| Vite | ^8.0.8 | 构建工具 |
| @icon-park/vue-next | ^1.4.2 | 图标库 |
| concurrently | ^8.2.2 | 并发执行工具 |
| electron-builder | ^24.13.3 | 应用打包工具 |
## 项目结构
```
iflow-settings-editor/
├── main.js # Electron 主进程 (窗口管理、IPC、文件操作)
├── preload.js # 预加载脚本 (IPC 通信)
├── index.html # HTML 入口
├── package.json # 项目配置
├── vite.config.js # Vite 配置
├── src/
│ ├── main.js # Vue 入口
│ └── App.vue # 主组件 (所有业务逻辑)
├── build/ # 构建资源 (图标等)
├── release/ # 打包输出目录
└── screenshots/ # 截图资源
```
## 快速开始
### 安装依赖
```bash
npm install
```
### 开发模式
```bash
npm run dev # 启动 Vite 开发服务器
npm run electron:dev # 同时运行 Electron + Vite
```
### 构建与运行
```bash
npm run build # 构建 Vue 应用到 dist 目录
npm start # 运行 Electron 应用
npm run electron:start # 构建 + 运行 Electron
```
### 打包应用
```bash
npm run pack # 打包应用(不生成安装包)
npm run build:win # 构建 Windows 安装包 (NSIS)
npm run build:win64 # 构建 Windows x64 安装包
npm run build:win32 # 构建 Windows x86 安装包
npm run build:win-portable # 构建可移植版本
npm run build:dist # 完整构建和打包
```
## 功能模块
### 1. 常规设置 (General)
![主界面](screenshots/main.png)
配置应用程序的常规选项:
- **语言**: zh-CN / en-US / ja-JP
- **主题**: Xcode / Dark / Light / Solarized Dark
- **启动动画**: 已显示 / 未显示
- **检查点保存**: 启用 / 禁用
### 2. API 配置 (API)
管理多个环境的 API 配置:
- **配置列表**: 显示所有可用的 API 配置文件
- **配置切换**: 点击配置卡片直接切换
- **创建配置**: 新建 API 配置文件
- **编辑配置**: 修改现有配置的认证方式、API Key、Base URL 等
- **复制配置**: 基于现有配置创建新配置
- **删除配置**: 删除非默认配置
- **认证方式**: iFlow / API Key / OpenAI 兼容
- **API Key**: 密码输入框
- **Base URL**: API 端点
- **模型名称**: AI 模型标识
- **搜索 API Key**: 搜索服务认证
- **CNA**: CNA 标识
### 3. MCP 服务器管理 (MCP)
管理 Model Context Protocol 服务器配置:
- **服务器列表**: 显示所有已配置的服务器
- **添加服务器**: 创建新的 MCP 服务器配置
- **编辑服务器**: 修改现有服务器的配置
- **删除服务器**: 移除服务器配置
- **服务器配置项**:
- 名称
- 描述
- 命令
- 工作目录
- 参数 (每行一个)
- 环境变量 (JSON 格式)
## 核心架构
### 进程模型
- **Main Process (main.js)**: Electron 主进程处理窗口管理、IPC 通信、文件系统操作
- **Preload (preload.js)**: 通过 `contextBridge.exposeInMainWorld` 暴露安全 API
- **Renderer (Vue)**: 渲染进程,只通过 preload 暴露的 API 与主进程通信
### 窗口配置
- 窗口尺寸: 1100x750最小尺寸: 900x600
- 无边框窗口 (frame: false),自定义标题栏
- 开发模式加载 `http://localhost:5173`,生产模式加载 `dist/index.html`
### 安全配置
- `contextIsolation: true` - 隔离上下文
- `nodeIntegration: false` - 禁用 Node.js
- `webSecurity: false` - 仅开发环境解决 CSP 问题
## 打包配置
### Windows 平台
- **NSIS 安装包**: 支持 x64 架构
- **可移植版本**: 无需安装的独立可执行文件
- **安装器特性**:
- 允许修改安装目录
- 允许提升权限
- 创建桌面和开始菜单快捷方式
- 支持中文和英文界面界面
- 卸载时保留用户数据
### 输出目录
- `release/` - 所有打包输出的根目录
- 安装包命名: `iFlow Settings Editor-${version}-${arch}-setup.${ext}`
- 可移植版本命名: `iFlow Settings Editor-${version}-portable.${ext}`
## 注意事项
- `webSecurity: false` 仅用于开发环境解决 CSP 问题
- 保存设置时会自动创建备份 (`settings.json.bak`)
- MCP 服务器参数每行一个,环境变量支持 JSON 格式
- API 配置切换时会直接应用新配置,未保存的更改会被替换
## 开发注意事项
1. **修改检测**: 通过 `watch(settings, () => { modified.value = true }, { deep: true })` 深度监听
2. **服务器编辑**: 使用 DOM 操作收集表单数据
3. **MCP 参数**: 每行一个参数,通过换行分割
4. **环境变量**: 支持 JSON 格式输入
5. **窗口控制**: 通过 IPC 发送指令,主进程处理实际窗口操作
6. **API 配置切换**: 多个环境配置存储在 `settings.apiProfiles` 对象中
7. **序列化问题**: IPC 通信使用 `JSON.parse(JSON.stringify())` 避免 Vue 响应式代理问题
8. **默认值处理**: 加载配置时检查 `undefined` 并应用默认值,防止界面显示异常
## 许可证
MIT License