界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
效率与协作 · SKILL.md

electron

electron

【效率与协作】Electron开发专家助手。当用户需要进行Electron桌面应用开发、跨平台桌面软件、主进程与渲染进程通信或Node.js桌面应用时调用。

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: "electron" description: "Electron开发专家助手。当用户需要进行Electron桌面应用开发、跨平台桌面软件、主进程与渲染进程通信或Node.js桌面应用时调用。"

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.js http

注释规范

  • 所有主进程模块必须有中文注释
  • 所有 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 管理开发依赖
我的收藏