L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Productivité · SKILL.md

electron

electron

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

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

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 管理开发依赖
Skills enregistrées