# 前言 —— 关于 Electron
---
[TOC]
Electron 是 GitHub 开发的一个开源库,用于使用 HTML 、 CSS 和 JavaScript 构建跨平台的桌面应用。Electron 通过结合 [Chromium](https://www.chromium.org/Home) 和 [Node.js](https://nodejs.org/) 到一个单独的运行时实现了这个目的,并且 app 可以被打包为 Mac 、Windows 和 Linux 平台应用 。
Electron 从2013年开始作为 GitHub 的可破解文本编辑器 [Atom](https://atom.io/) 上的框架被构建。在 2014 年春季这两个项目都被开源。
自此它开始成为被开源开发者、创业公司和已成立的公司使用的中流行工具。查看 [谁基于Electron构建应用](http://electron.atom.io/apps)。
继续阅读了解如何参与发行和贡献 Electron ,或者在【[第16章.快速入门](227470)】中学习使用 Electron 构建应用。
## 核心团队和贡献者
Electron 由 GitHub 的一个团队进行维护,包括社区中的一些[活跃的贡献者](https://github.com/electron/electron/graphs/contributors)。其中一些贡献者是独立开发者,也有一些就职于使用 Electron 进行开发的大型公司。我们很乐意增加新的活跃贡献者到项目的维护者中。阅读 [如何成为 Electron 的贡献者](https://github.com/electron/electron/blob/master/CONTRIBUTING.md)。
## Electron 发布
[Electron的发布](https://github.com/electron/electron/releases)比较频繁。每当有重要的 bug 修复、新的 APIs, 或者 Node.js / Chromium 更新了版本时,都会发布 Electron 版本。
### 更新依赖关系
Electron 的 Chromium 版本通常在一个新的稳定的 Chromium 版本发布后一到两周内进行更新,这取决于在升级中牵涉的力度。
当一个新版的 Node.js 发布后,Electron 通常会在升级前等待一个月,以期引入一个更加稳定的版本。
在 Electron 中,Node.js 和 Chromium 共享一个单独的 V8 实例 —— 通常是该 Chromium 使用的 V8 版本。多数时候,这就足以正常工作,但有时也意味着要修补 Node.js。
### 版本管理
由于对 Node.js 和 Chromium 牢固的依赖关系,Electron 处在一个微妙的版本位置,它并不遵循 [`semver`](http://semver.org/) 版本规范。你应该随时参考一个特定版本的 Electron 。阅读更多关于【[版本说明](227454)】,或者查看[当前使用的版本](https://electron.atom.io/#electron-versions)。
### LTS
目前不存在对于旧版本 Electron 的长期支持。如果你有当前正在使用的 Electron 版本,只要你愿意,尽可以留在这里。如果你希望利用新的功能,就应该升级到新的版本。
一个重大的更新来自于 v1.0.0。如果你还没有使用过这个版本,应该了解更多 [关于 v1.0.0 的变更](http://electron.atom.io/blog/2016/05/11/electron-1-0)。
## 核心哲学
为了保持 Electron 的小巧(文件大小)和可持续发展(依赖关系和 APIs 的延伸),项目限制了核心项目的范围。
例如,Electron 仅使用了 Chromium 的渲染库,而不是 Chromium 的所有库。这使升级 Chromium 更加容易,但是同时也意味着一些在 Google Chrome 浏览器中的功能,在 Electron 中并不存在。
添加到 Electron 中的新功能应该主要是原生 APIs。如果一个功能可以成为它自己的 Node.js 模块实现,那么它就应该是。查看 [社区构建的 Electron 工具](http://electron.atom.io/community)。
## Electron 历史
下面是 Electron 历史中的里程碑:
* 2013年4月 [Atom Shell 项目开始](https://github.com/electron/electron/commit/6ef8875b1e93787fa9759f602e7880f28e8e6b45)
* 2014年5月 [Atom Shell 开源](http://blog.atom.io/2014/05/06/atom-is-now-open-source.html)
* 2015年4月 [Atom Shell 更名为 Electron](https://github.com/electron/electron/pull/1389)
* 2016年5月 [Electron 发布 v1.0.0](http://electron.atom.io/blog/2016/05/11/electron-1-0)
* 2016年5月 [Electron 应用兼容 Mac App Store](227456)
* 2016年8月 [Window Store 支持 Electron 应用](227457)
- 索引
- 前言.关于Electron
- 第一部分 开发指南
- 第1章.平台支持
- 第2章.安全、原生功能和你的责任
- 第3章.版本说明
- 第4章.发行应用
- 第5章.Mac App商店提交指南
- 第6章.Windows商店指南
- 第7章.应用打包
- 第8章.使用Node原生模块
- 第9章.调试主进程
- 9.1.在VSCode中调试
- 9.2.在node-inspector中调试
- 第10章.使用Selenium和WebDriver
- 第11章.DevTools扩展
- 第12章.使用Pepper Flash插件
- 第13章.使用Widevine CDM插件
- 第14章.通过自动化持续集成系统进行测试
- 第15章.离屏渲染
- 第二部分 使用教程
- 第16章.快速入门
- 第17章.桌面环境集成
- 第18章.在线/离线事件探测
- 第19章.应答式编译器(REPL)
- 第三部分 API参考
- 第20章.API简介
- 第21章.进程对象
- 第22章.Chrome的命令行开关
- 第23章.环境变量
- 第24章.定制的DOM元素
- 24.1.File 对象
- 24.2.webview 标签
- 第25章.主进程模块
- 25.1.app
- 25.2.BrowserWindow
- 25.3.无框架窗口
- 第26章.渲染进程模块
- 第27章.两种进程可用的模块
- 第四部分 高级主题
- 附 FAQ
- 附 文档规范
- 附 示例用例
- 1.无边框窗口