Electron 源碼目錄結(jié)構(gòu)

2019-08-14 19:20 更新

Electron 的源代碼主要依據(jù) Chromium 的拆分約定被拆成了許多部分。

為了更好地理解源代碼,您可能需要了解一下 Chromium 的多進(jìn)程架構(gòu)。

源代碼的結(jié)構(gòu)

Electron
├──atom - Electron 的源代碼
|  ├── app - 系統(tǒng)入口代碼
|  ├── browser - 包含了主窗口、UI 和其他所有與主進(jìn)程有關(guān)的東西,它會告訴渲染進(jìn)程如何管理頁面
|  |   ├── lib - 主進(jìn)程初始化代碼中 JavaScript 部分的代碼
|  |   ├── ui - 不同平臺上 UI 部分的實現(xiàn)
|  |   |   ├── cocoa - Cocoa 部分的源代碼
|  |   |   ├── gtk - GTK+ 部分的源代碼
|  |   |   └── win - Windows GUI 部分的源代碼
|  |   ├── default_app - 在沒有指定 app 的情況下 Electron 啟動時默認(rèn)顯示的頁面
|  |   ├── api - 主進(jìn)程 API 的實現(xiàn)
|  |   |   └── lib - API 實現(xiàn)中 Javascript 部分的代碼
|  |   ├── net - 網(wǎng)絡(luò)相關(guān)的代碼
|  |   ├── mac - 與 Mac 有關(guān)的 Objective-C 代碼
|  |   └── resources - 圖標(biāo),平臺相關(guān)的文件等
|  ├── renderer - 運行在渲染進(jìn)程中的代碼
|  |   ├── lib - 渲染進(jìn)程初始化代碼中 JavaScript 部分的代碼
|  |   └── api - 渲染進(jìn)程 API 的實現(xiàn)
|  |       └── lib - API 實現(xiàn)中 Javascript 部分的代碼
|  └── common - 同時被主進(jìn)程和渲染進(jìn)程用到的代碼,包括了一些用來將 node 的事件循環(huán)
|      |        整合到 Chromium 的事件循環(huán)中時用到的工具函數(shù)和代碼
|      ├── lib - 同時被主進(jìn)程和渲染進(jìn)程使用到的 Javascript 初始化代碼
|      └── api - 同時被主進(jìn)程和渲染進(jìn)程使用到的 API 的實現(xiàn)以及 Electron 內(nèi)置模塊的基礎(chǔ)設(shè)施
|          └── lib - API 實現(xiàn)中 Javascript 部分的代碼
├── chromium_src - 從 Chromium 項目中拷貝來的代碼
├── docs - 英語版本的文檔
├── docs-translations - 各種語言版本的文檔翻譯
├── spec - 自動化測試
├── atom.gyp - Electron 的構(gòu)建規(guī)則
└── common.gypi - 為諸如 `node` 和 `breakpad` 等其他組件準(zhǔn)備的編譯設(shè)置和構(gòu)建規(guī)則

其他目錄的結(jié)構(gòu)

  • script - 用于諸如構(gòu)建、打包、測試等開發(fā)用途的腳本
  • tools - 在 gyp 文件中用到的工具腳本,但與 script 目錄不同, 該目錄中的腳本不應(yīng)該被用戶直接調(diào)用
  • vendor - 第三方依賴項的源代碼,為了防止人們將它與 Chromium 源碼中的同名目錄相混淆, 在這里我們不使用 third_party 作為目錄名
  • node_modules - 在構(gòu)建中用到的第三方 node 模塊
  • out - ninja 的臨時輸出目錄
  • dist - 由腳本 script/create-dist.py 創(chuàng)建的臨時發(fā)布目錄
  • external_binaries - 下載的不支持通過 gyp 構(gòu)建的預(yù)編譯第三方框架
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號