用途:为 LlamaFarm Desktop 桌面应用提供 Electron 开发模式,在 typescript-skills 基础上补充 Electron 专属实践,涵盖主进程与渲染进程架构、IPC 通信、安全与性能。
技术栈:框架为 Electron 28;构建使用 electron-vite 2,分别构建 main/preload/renderer;更新使用 electron-updater,通过 GitHub releases 自动更新;打包使用 electron-builder,支持 macOS/Windows/Linux 跨平台。
架构:electron-app/src 下分 main(Node.js 上下文,含 index.ts 应用入口与生命周期、IPC 处理器,backend 含 CLI 安装器与模型下载器,以及 window-manager.ts、menu-manager.ts、logger.ts)、preload(桥接上下文,index.ts 通过 contextBridge 暴露 API)、renderer(浏览器上下文,含 index.html 主窗口与 splash.html 启动画面)。
核心原则:进程隔离,主进程、预加载与渲染进程为独立上下文;始终使用 contextBridge.exposeInMainWorld 实现上下文隔离;渲染进程禁用 Node,nodeIntegration 始终为 false;IPC 类型安全,定义通道类型与负载结构;默认安全,尽量减少预加载中暴露的 API。
用法示例:主进程用 ipcMain.handle('cli:info', async () => {...}) 注册处理器;预加载通过 const api = { cli: { getInfo: () => ipcRenderer.invoke('cli:info') }, platform: process.platform, version: process.versions.electron } 后调用 contextBridge.exposeInMainWorld('llamafarm', api);BrowserWindow 的 webPreferences 设置 preload 路径、nodeIntegration: false、contextIsolation: true。
相关文档:electron.md 讲 IPC 模式与主/渲染通信,security.md 讲上下文隔离、预加载安全与 CSP,performance.md 讲窗口管理、内存与启动;并继承 typescript-skills 的 patterns.md、typing.md、security.md。检查清单按 IPC、安全、性能分级列出关键项。
限制:资料未提供具体安装命令、版本兼容范围、收费与平台支持细节,暂未提供。