快速入门
Electron允许您使用JavaScript轻松创建桌面应用程序,并且可以调用丰富的操作系统级原生API.你可以把它当成Node.js变体,只不过它更专注于桌面应用而非Web服务器.
但这并不意味着Electron将JavaScript绑定到图形用户界面(GUI)库,恰恰相反,Electron使用网页作为其GUI,因此你可以将其当成由JavaScript控制的迷你精简版Chromium浏览器.
主进程
在 Electron中, 把 'package.json'
中设定的 main
脚本的所在进程称为 主进程. 这个进程中运行的脚本也可通过 创建网页 这种方式来展现其GUI.
渲染进程
因为Electron是通过Chromium来显示页面,所以Chromium自带的多进程架构也一同被利用. 这样每个页面都运行着一个独立的进程,它们被统称为 渲染进程.
通常来说,浏览器中的网页会被限制在沙盒环境中运行并且不允许访问系统原生资源.但是由于Eelectron用户可在页面中调用Node.js API,所以可以和底层操作系统直接交互.
主进程与渲染进程的区别
主进程通过创建 BrowserWindow
实例来创建网页.每个 BrowserWindow
实例都在自己的渲染进程中运行页面. 一旦 BrowserWindow
实例被销毁,相应的渲染进程也会被终止.
主进程管理着所有的页面及其对应的渲染进程.每个渲染进程是相互独立的,它只关心在其中运行的页面.
Electron 在页面中禁用了原生GUI相关的API,这是因为在页面中管理原生 GUI是非常危险并容易泄露资源.
不过,如果需要在页面中执行GUI操作,则页面所在的渲染进程必须与主进程通信并请求由主进程执行相关的 GUI 操作.
在Electron中,主进程和渲染进程有多种通信方式,如ipcRenderer
和 ipcMain
模块可进行消息处理, remote 模块可进行 RPC
方式通信. 详情可参考FAQ章节中的如何在页面之间共享数据?.
打造您的第一个 Electron 应用
Electron应用的结构通常如下:
package.json
文件格式和Node模块完全一致,其中main
字段所标明的脚本即启动脚本,示例如下:
注意: 如果 package.json
中未标明main
字段, Electron 将默认加载 index.js
.
main.js
应该用于创建窗口与处理系统事件,例子如下:
最后,你想展示的index.html
页面:
运行应用
当你已创建 main.js
, index.html
, 和 package.json
文件, 你可以按以下方式尝试在本地运行或测试.
electron
electron
electron
是一个包含Electron预编译版本的 npm
模块,如果你已使用npm
全局安装了它,那么你只需在应用所在目录执行以下命令:
如果你是局部安装,那运行:
macOS / Linux
Windows
手动下载 Electron 二进制文件
如果您手动下载了Electron,您也可以使用随附的二进制文件直接运行应用.
macOS
Linux
Windows
Electron.app
是Electron发行包的一部分, 你可以 在这里直接下载.
以发行版运行
在完成你的应用之后,请参照 应用分发 章节分发已封装的应用.
参考示例
复制和运行这个库:electron/electron-quick-start
.
注意: 运行前确保系统已安装Git 和 Node.js (包括npm) .
更多的例子,请参考list of boilerplates.
Last updated