本附录整理 Electron 开发中高频使用的官方模块与第三方库,按功能场景分类,方便你快速查找和选型。所有列出的项目均在真实生产环境中经过广泛验证,可放心引入。
B.1 工程化与打包
| 工具 | 类型 | 简介 | 关键用途 |
|------|------|------|----------|
| electron-builder | 第三方 | 最主流的打包工具,支持自动生成 Windows / macOS / Linux 安装包,内置自动更新配置。 | 将代码编译为可分发的 .exe、.dmg、.deb 等安装包。 |
| electron-forge | 官方 | Electron 官方维护的一站式工具链,集成了脚手架、打包、发布功能,适合新手和标准化项目。 | 快速初始化项目,统一管理构建与发布流程。 |
| electron-rebuild | 第三方 | 自动重新编译原生 Node.js 模块以匹配当前 Electron 的 Node 版本,解决二进制兼容问题。 | 引入依赖原生模块的库(如 sqlite3、better-sqlite3)时,必须用它重新编译。 |
| @electron/remote | 官方 | 原内置模块 remote 的独立版本,允许渲染进程安全地调用主进程对象。 | 迁移旧项目时替代已废弃的 remote 模块(新项目推荐用 IPC 替代)。 |
使用提示:新项目建议直接使用 electron-forge 的模板初始化,它内置了 webpack/vite 集成,避免了手动拼装打包配置的麻烦。
B.2 应用更新与分发
| 工具 | 类型 | 简介 | 关键用途 |
|------|------|------|----------|
| electron-updater | 第三方 | electron-builder 官配更新方案,支持全量更新和增量更新,对接 GitHub / S3 / 自定义服务器。 | 实现应用内自动检查、下载、安装更新。 |
| nuts | 第三方 | GitHub 部署的开源更新服务器,可与 electron-updater 配合使用。 | 在自己的服务器上搭建更新服务,摆脱对 GitHub 的依赖。 |
| electron-release-server | 第三方 | 带 Web 管理界面的 Electron 更新服务器,支持多平台、多通道发布。 | 需要精细控制版本分发和灰度发布时使用。 |
使用提示:发布前务必在本地测试全部更新流程,特别是签名校验和差分更新,避免用户端更新失败导致大面积故障。
B.3 调试与开发体验
| 工具 | 类型 | 简介 | 关键用途 |
|------|------|------|----------|
| electron-devtools-installer | 第三方 | 自动为 Electron 窗口安装 React DevTools、Vue DevTools 等浏览器扩展。 | 在开发环境中快速注入前端框架调试工具。 |
| devtron | 第三方 | Electron 专用调试面板,可视化分析主进程/渲染进程的 IPC 通信、事件循环和内存占用。 | 排查进程间通信异常、性能瓶颈。 |
| spectron | 第三方 | Electron 应用的端到端测试框架,基于 WebDriver,已停止维护但仍有大量项目使用。 | 编写自动化 UI 测试用例,模拟用户操作。 |
| playwright + electron | 第三方 | 使用 Playwright 直接驱动 Electron 窗口,官方提供 electron.launch() 支持。 | 新一代 E2E 测试方案,脚本简洁,支持多窗口、录制回放。 |
使用提示:新项目推荐直接使用 Playwright 做端到端测试,它的 API 更现代,维护活跃,并且同时支持 Web 和 Electron 的混合测试场景。
B.4 安全与防护
| 工具 | 类型 | 简介 | 关键用途 |
|------|------|------|----------|
| contextBridge | 官方 | 用于提前加载脚本中安全暴露主进程 API 给渲染进程,防止全量暴露 require 等危险能力。 | 任何需要渲染进程和主进程通信的场景,都应用它来建立安全桥梁。 |
| electron-permissions | 第三方 | 帮助管理 Chromium 的权限请求(摄像头、麦克风、通知等)。 | 防止未授权页面自动获取敏感权限。 |
| webpack-plugin-electron | 第三方 | 在 webpack 打包时注入 Electron 安全策略,如强制开启 contextIsolation、禁用 nodeIntegration。 | 在构建阶段就杜绝常见的不安全配置,适合团队级规范落地。 |
使用提示:2023 年后新建的 Electron 项目默认已启用 contextIsolation: true 和 nodeIntegration: false,这是安全基线,不要为了开发便利关掉它。
B.5 原生能力扩展
| 工具 | 类型 | 简介 | 关键用途 |
|------|------|------|----------|
| node-ffi-napi | 第三方 | 纯 JavaScript 调用动态库(.dll / .so / .dylib)接口,无需编写 C++ 插件。 | 需要调系统底层 C API 或第三方 SDK 时快速集成。 |
| electron-store | 第三方 | 基于 JSON 文件的持久化存储库,简单键值存储,支持加密。 | 保存应用配置、用户偏好、窗口位置等轻量数据。 |
| better-sqlite3 | 第三方 | 高性能同步 SQLite 驱动,无需安装数据库服务,数据直接存本地文件。 | 需要结构化查询、全文搜索、百万级记录时的本地数据库首选。 |
| sharp | 第三方 | 高性能图片处理库(基于 C 扩展),支持缩放、裁剪、格式转换等。 | 应用内需要处理用户图片、生成缩略图时调用。 |
| robotjs | 第三方 | 原生鼠标键盘控制与屏幕截图库,可模拟用户操作。 | 制作自动化脚本、演示工具或辅助功能应用。 |
| serialport | 第三方 | 完整串口通信库,支持 Windows / macOS / Linux。 | 需要通过串口与硬件设备(如 Arduino、POS 机)通信的应用。 |
使用提示:引入任何原生模块(如 better-sqlite3、sharp)后,必须运行 electron-rebuild 重新编译,否则会因 Node.js 版本不匹配而无法加载。
B.6 常用官方 API 模块速查
| 模块 | 核心用途 |
|------|----------|
| app | 控制应用生命周期、监听事件、获取路径、退出应用。 |
| BrowserWindow | 创建和管理窗口,设置大小、标题、透明、无边框等属性。 |
| ipcMain / ipcRenderer | 主进程与渲染进程的异步通信通道。 |
| dialog | 打开系统原生对话框(文件选择、消息提示、保存文件)。 |
| Menu / MenuItem | 创建原生菜单栏和右键上下文菜单。 |
| Tray | 创建系统托盘图标和菜单,常驻后台提示。 |
| Notification | 发送系统级桌面通知。 |
| globalShortcut | 注册全局快捷键,即使在其它应用中也能触发。 |
| screen | 获取显示器信息、窗口所在屏幕、DPI 等。 |
| clipboard | 读写系统剪贴板(支持文本、图像)。 |
| shell | 操作系统的默认行为:打开文件、URL、文件夹,或使用默认程序打开。 |
| powerMonitor | 监听系统挂起、恢复、关机等电源事件。 |
| autoUpdater | 内置简单自动更新接口,通常被 electron-updater 替代使用。 |
速查说明:完整 API 文档见 electronjs.org/docs,你可以将以上模块视作日常开发的核心工具箱,它们的组合能覆盖 90% 的桌面功能需求。
B.7 注意事项与选型建议
- 优先使用官方或大厂维护的库:如
electron-builder(超 13k Star)、electron-updater(10k+ Star),它们在版本升级时跟进速度最快,能避免遇到“Electron 更新插件没追上”的坑。 - 原生模块必须重新编译:任何包含 C++ 源码的 npm 包(如
sqlite3、sharp、node-pty),安装后都要执行npx electron-rebuild,否则运行时会直接报错。 - 安全第一:永远不要在生产环境中使用
nodeIntegration: true或暴露remote给渲染进程。安全的桥梁应当是preload.js+contextBridge。 - 关注废弃通知:Electron 版本迭代较快,如
remote模块、旧版 IPC 方式等在较新版本中已被标记为废弃。添加依赖前先看一眼官方 Breaking Changes,避免刚写完就得重构。
本速查表旨在提供一份“实用索引”,让你在遇到具体需求时能快速定位到合适的工具。实际使用时建议直接阅读对应库的 GitHub README 或 Electron 官方文档,它们通常提供了最详尽的配置示例和版本兼容性说明。