Electron
Electron 是用 HTML、CSS 和 JavaScript 构建跨平台桌面应用的框架,内置 Chromium 和 Node.js。它让你复用网页开发技能,制作能访问本地文件、使用系统菜单的 Windows、macOS 和 Linux 应用。
你可能会说:「我想把现有网页做成电脑上能安装的软件,还能读取本地文件夹。」
读之前建议先了解
动手看看桌面笔记应用打开本地文件
你点击桌面笔记应用的“打开文件”。按钮由 HTML、CSS 和 JavaScript 构建,运行在 Electron 内置的 Chromium 中。
要点Electron 怎样把网页变成桌面应用?
- 1
用网页技术构建桌面界面
你可以用 HTML、CSS 和 JavaScript 写界面,也可以继续用 React 或 Vue。因为应用内置 Chromium,用户不必另装浏览器,界面也不依赖用户默认浏览器的版本。
- 2
主进程与页面各管一摊
主进程负责创建窗口、接入系统能力,渲染进程负责展示界面和处理交互。比如做文档助手,页面显示文件列表,主进程处理文件读取,两边通过进程间通信交换请求和结果。
- 3
文件访问通过受控桥梁
我们通常通过预加载脚本向页面提供少量明确的能力,例如“选择文件并读取”,而不是开放整个 Node.js。主进程再检查请求参数,这样页面即使出现漏洞,也更难随意操作你的电脑。
- 4
跨平台仍需分别验证
因为随应用分发了浏览器引擎和运行时,安装包和内存开销通常比简单原生工具大。多数业务代码可以共用,但安装包、文件路径、系统菜单和权限行为仍要在各目标系统上验证。
容易混淆的地方
Electron 不是 React 的替代品:React 负责组织界面,Electron 提供桌面运行环境,两者可以一起用。它与 Tauri 都能用网页技术做桌面应用,但 Electron 自带 Chromium,Tauri 主要使用系统 WebView,运行环境和打包开销因此不同。
什么时候用
适合用
- 你已有网页编辑器,想复用界面做桌面版,并接入本地文件和系统菜单。
- 你要做本地文档 AI 助手,需要选择文件夹、读取资料并显示处理进度。
- 团队熟悉 JavaScript,要开发覆盖多个桌面系统的内部工作台,能接受运行时开销。
不适合用
- 产品只是在线查询和填写表单,浏览器已能满足需求,直接做网站更省维护成本。
- 目标是手机 App 或微信小程序,考虑 Flutter、React Native 或小程序方案。
- 你要做安装包极小、长期驻留的简单工具,可以优先评估原生开发或 Tauri。
练一练选一个答案,看看解释
你要把现有 React 文档整理网站做成桌面应用,让用户选择本地文件夹并整理其中的文件。下面哪种方案更合理?
让 AI 帮你做复制给 AI Agent 直接用
请用 Electron 把现有 React 文档工具做成 Windows 和 macOS 桌面应用。用户可选择文件夹并读取文档;界面不直接访问 Node.js,通过预加载脚本暴露有限接口,主进程校验请求。请提供开发启动、打包步骤和两端验证清单。