# Electron

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

- Skill: `dkbnull/electron` (Agent Skill)
- Install (CLI): `npx skillmds@latest add dkbnull/electron`
- Raw SKILL.md: https://api.skillmd.com/api/skills/dkbnull/electron/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: dkbnull (https://skillmd.com/u/dkbnull)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/dkbnull/electron

---


# 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 管理开发依赖

