Essential Electron

Concise plain-speak about Electron.

Background
Electron 是什么?
为什么它如此重要?
它由什么组成?
开发体验如何?
Development
前提条件
两个进程
主进程
渲染进程
像这样思考
Development Cont'd
保持通讯
总而言之
快速开始
打包
更多参考资料

Read this in English Japanese.

Electron 是什么?

Electron 是一个可以用 JavaScript、HTML 和 CSS 构建桌面应用程序的。这些应用程序能打包到 Mac、Windows 和 Linux 系统上运行,也能上架到 Mac 和 Windows 的 App Store。

下一节: 为什么它如此重要?

定义:

参考资料:

为什么它如此重要?

通常来说,每个操作系统的桌面应用都由各自的原生语言进行编写,这意味着需要 3 个团队分别为该应用编写相应版本。而 Electron 则允许你用 Web 语言编写一次即可。

下一节: 它由什么组成?

定义:

它由什么组成?

Electron 结合了 ChromiumNode.js ,还有像打开文件窗口、通知、图标等这样的用于调用操作系统本地功能的 API。

Electron components

下一节: 开发体验如何?

定义:

参考资料:

开发体验如何?

基于 Electron 的开发就像在开发网页,而且能够无缝地 使用 Node。或者说:在构建一个 Node 应用的同时,通过 HTML 和 CSS 构建界面。另外,你只需为一个浏览器(最新的 Chrome)进行设计(即无需考虑兼容性等)。

下一节: 前提条件

定义:

参考资料:

前提条件

由于Electron的两大组件都是网站和JavaScript,因此在开始之前,您需要这两者的相关经验。查看一些关于HTML,CSS和JS的教程,并在您的计算机上安装Node。

定义:

下一节: 两个进程

参考资料:

两个进程

Electron 有两种进程:『主进程』和『渲染进程』。部分模块只能在两者之一上运行,而有些则无限制。主进程更多地充当幕后角色,而渲染进程则是应用程序的各个窗口。

定义:

下一节: 主进程

参考资料:

主进程

主进程,通常是一个命名为 main.js 的文件,该文件是每个 Electron 应用的入口。它控制了应用的生命周期(从打开到关闭)。它既能调用原生元素,也能创建新的(多个)渲染进程。另外,Node API 是内置其中的。

main process diagram

定义:

下一节: 渲染进程

参考资料:

渲染进程

渲染进程是应用的一个浏览器窗口。与主进程不同,它能存在多个,并且相互独立.他们也能是隐藏的。主窗口通常被命名为 index.html 。它们就像典型的 HTML 文件,但 Electron 赋予了它们完整的 Node API。因此,这也是它与浏览器的区别。

renderer process diagram

定义:

下一节: 像这样思考

参考资料:

像这样思考

在Chrome(或其他网络浏览器)中,每个选项卡及其网页就像Electron中的单个渲染器进程。如果关闭所有选项卡,Chrome仍然存在,这就像您的主进程一样,您可以打开新窗口或退出应用程序。

Chrome comparison of the two processes

参考资料:

下一节: 保持通讯

保持通讯

由于主进程和渲染进程各自负责不同的任务,而对于需要协同完成的任务,它们需要相互通讯。IPC就为此而生,它提供了进程间的通讯。但它只能在主进程与渲染进程之间传递信息(即渲染进程之间不能进行直接通讯)。

IPC diagram

定义:

下一节: 总而言之

总而言之

Electron 应用就像 Node 应用,它也依赖一个 package.json 文件。该文件定义了哪个文件作为主进程,并因此让 Electron 知道从何启动应用。然后主进程能创建渲染进程,并能使用 IPC 让两者间进行消息传递

Electron app components diagram

定义:

下一节: 快速开始

快速开始

Electron Quick Start存储库是一个简单的Electron应用程序,包含您在此处了解到的 package.jsonmain.jsindex.html - 一个开始的好地方!您也可以像选择框架一样去从模板库中选择一个模板boilerplates。

下一节: 打包

参考资料:

打包

一旦您的应用程序构建完成,您可以使用Mac,Windows或Linux的命令行工具electron-packager 将其打包。为此添加脚本到你的 package.json 。请查看下面的资源,以便在Mac和Windows应用商店中获取您的应用。

下一节: 更多参考资料

定义:

参考资料:

更多参考资料

这里的概念会让你感觉很不错,但当然还有其他更多的资料。

参考资料: