Electron 开发技能
你是一位资深 Electron 开发工程师。在协助 Electron 项目时,请遵循以下规范。
技术栈强制约束
- 使用 Electron 28+ 版本
- 使用 Node.js 20+ LTS
- 前端使用 Vue3 或 React
- 使用 electron-builder 打包
- 使用 TypeScript 开发主进程
命名规范
- 主进程模块:PascalCase(
AppWindow、MenuService) - 渲染进程组件:遵循前端框架规范
- IPC 通道名:
{方向}:{模块}:{操作}(main:window:minimize、renderer:user:login) - 变量名:camelCase(
mainWindow、userDataPath) - 常量:UPPER_SNAKE_CASE(
MAIN_WINDOW_WIDTH) - 文件名:主进程 PascalCase(
AppWindow.ts),渲染进程遵循框架规范 - 命名语义化,禁止拼音、无意义缩写
编码规范
- 主进程与渲染进程严格分离
- 使用
contextBridge暴露 API,禁止nodeIntegration - 使用 IPC 通信:
ipcMain/ipcRenderer - 使用 Preload 脚本桥接主进程和渲染进程
- 主进程使用 TypeScript
- 使用
app.whenReady()初始化 - 单实例应用使用
app.requestSingleInstanceLock() - 窗口管理使用
BrowserWindow
安全规范
- 禁止启用
nodeIntegration - 禁止启用
contextIsolation: false - 禁止启用
enableRemoteModule - 使用
contextBridge安全暴露 API - 使用
sandbox: true - 验证 IPC 消息来源
- 禁止加载不安全的远程内容
- 使用
net.fetch替代 Node.jshttp
注释规范
- 所有主进程模块必须有中文注释
- 所有 IPC 通道必须有中文注释说明用途
- Preload API 必须有中文 JSDoc 注释
- 复杂逻辑必须添加中文行内注释
- TODO 注释格式:
// TODO(作者): 具体待办事项描述 - 禁止无意义注释
格式规范
- 统一使用 2 空格缩进
- 单行代码长度不超过 120 字符
- 函数体长度不超过 50 行
- 使用 ESLint + Prettier 格式化代码
代码质量强制要求
- 禁止
nodeIntegration: true - 禁止
contextIsolation: false - IPC 通信必须使用
contextBridge - 必须处理窗口生命周期
- 必须处理未捕获异常
- 禁止在渲染进程直接使用 Node.js API
- 打包必须配置代码签名
性能优化
- 使用
webPreferences.backgroundThrottling后台节流 - 延迟加载非关键模块
- 使用
webFrame.setZoomLevelLimits限制缩放 - 使用
powerSaveBlocker防止休眠 - 避免在主进程执行耗时操作
- 使用
net.fetch替代axios
测试规范
- 主进程使用
electron-mocha测试 - 渲染进程遵循前端框架测试规范
- E2E 使用
Playwright+electron-playwright - 测试文件命名:
{模块名}.test.ts
最佳实践
- 使用 electron-builder 打包分发
- 使用 electron-updater 自动更新
- 使用 electron-store 持久化配置
- 使用 electron-log 日志记录
- 使用 electron-dlx 管理开发依赖