主进程与渲染进程
下图是 Chrome 浏览器的程序架构,图来自于Chrome 漫画。
Electron 应用的结构与上图非常相似,在 Electron 中主要控制两类进程:主进程、渲染器进程。
主进程
每个 Electron 应用都有一个单一的主进程,作为应用程序的入口点。 主进程在 Node.js 环境中运行,这意味着它具有 require
模块和使用所有 Node.js API 的能力。
主进程的主要目的是使用 BrowserWindow
模块创建和管理应用程序窗口。
渲染进程
Electron 应用都会为每个打开的 BrowserWindow
生成一个单独的渲染器进程。 洽如其名,渲染器负责 渲染 网页内容。 所以实际上,运行于渲染器进程中的代码是须遵照网页标准的,这也意味着渲染器无权直接访问 require
或其他 Node.js API。 为了在渲染器中直接包含 NPM 模块,您必须使用与在 web 开发时相同的打包工具。
问题产生:处于渲染器进程的用户界面,该怎样才能与 Node.js 和 Electron 的原生桌面功能进行交互呢?