# 前言 —— 關于 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.無邊框窗口