跳至主要內容

詞彙表

本頁面定義了一些在 Electron 開發中常用的術語。

ASAR

ASAR 代表 Atom Shell Archive Format。一個 asar 封存檔是一個簡單的類似 tar 的格式,將檔案串連成一個單一檔案。Electron 可以從中讀取任意檔案,而無需解壓縮整個檔案。

ASAR 格式的主要目的是在 Windows 上讀取大量小檔案時提高效能(例如,從 node_modules 載入應用程式的 JavaScript 依賴樹時)。

程式碼簽署

程式碼簽署是一個程式,應用程式開發人員在封裝後,會將其程式碼進行數位簽署,以確保程式碼未被竄改。Windows 和 macOS 都實作了各自版本的程式碼簽署。身為桌面應用程式開發人員,如果您計劃將您的程式碼發佈給大眾,那麼簽署您的程式碼非常重要。

如需更多資訊,請閱讀程式碼簽署教學。

內容隔離

內容隔離是 Electron 中的一項安全措施,可確保您的預載入腳本不會將具有權限的 Electron 或 Node.js API 洩漏到您的渲染器進程中的網頁內容。啟用內容隔離後,從您的預載入腳本公開 API 的唯一方法是透過 contextBridge API。

如需更多資訊,請閱讀內容隔離教學。

另請參閱:預載入腳本渲染器進程

CRT

C 執行階段程式庫 (CRT) 是 C++ 標準程式庫的一部分,其中包含 ISO C99 標準程式庫。實作 CRT 的 Visual C++ 程式庫支援原生程式碼開發,以及混合原生和受管理程式碼,以及 .NET 開發的純受管理程式碼。

DMG

Apple 磁碟映像是 macOS 使用的封裝格式。DMG 檔案通常用於發佈應用程式「安裝程式」。

IME

輸入法編輯器。一種程式,可讓使用者輸入在鍵盤上找不到的字元和符號。例如,這可讓使用拉丁鍵盤的使用者輸入中文、日文、韓文和印度文字元。

IDL

介面描述語言。以可用於在 Java、C++、JavaScript 等中產生介面的格式撰寫函式簽名和資料類型。

IPC

IPC 代表程序間通訊。Electron 使用 IPC 在主進程和渲染器進程之間傳送序列化的 JSON 訊息。

另請參閱:主進程渲染器進程

主進程

主進程,通常是名為 main.js 的檔案,是每個 Electron 應用程式的進入點。它控制應用程式的生命週期,從開啟到關閉。它還管理原生元素,例如「選單」、「選單列」、「Dock」、「Tray」等。主進程負責在應用程式中建立每個新的渲染器進程。完整的 Node API 已內建。

每個應用程式的主進程檔案都在 package.json 中的 main 屬性中指定。這就是 electron . 知道在啟動時要執行哪個檔案的方式。

在 Chromium 中,此進程稱為「瀏覽器進程」。它在 Electron 中重新命名,以避免與渲染器進程混淆。

另請參閱:進程渲染器進程

MAS

Apple Mac App Store 的縮寫。如需將您的應用程式提交至 MAS 的詳細資訊,請參閱Mac App Store 提交指南

Mojo

一個用於在進程內或進程間通訊的 IPC 系統,這很重要,因為 Chrome 渴望能夠根據記憶體壓力等因素將其工作拆分為單獨的進程或不拆分。

請參閱https://chromium.googlesource.com/chromium/src/+/main/mojo/README.md

另請參閱:IPC

MSI

在 Windows 上,Windows Installer(也稱為 Microsoft Installer)服務使用 MSI 套件來安裝和設定應用程式。

更多資訊可於Microsoft 的文件中找到。

原生模組

原生模組(在 Node.js 中也稱為 addons)是以 C 或 C++ 撰寫的模組,可以使用 require() 函式載入到 Node.js 或 Electron 中,並像一般 Node.js 模組一樣使用。它們主要用於提供在 Node.js 中執行的 JavaScript 和 C/C++ 程式庫之間的介面。

Electron 支援原生 Node 模組,但由於 Electron 很可能使用與系統中安裝的 Node 二進位檔案不同的 V8 版本,因此您必須在建置原生模組時手動指定 Electron 標頭的位置。

如需更多資訊,請閱讀原生 Node 模組教學。

公證

公證是一種 macOS 特有的程式,開發人員可以將程式碼簽署的應用程式傳送到 Apple 伺服器,以透過自動化服務驗證是否存在惡意元件。

另請參閱:程式碼簽署

OSR

OSR(螢幕外渲染)可用於在背景載入繁重的頁面,然後在稍後顯示(速度會快很多)。它允許您在不顯示在螢幕上的情況下渲染頁面。

如需更多資訊,請閱讀螢幕外渲染教學。

預載入腳本

預載入腳本包含在渲染器進程的網頁內容開始載入之前,在其中執行的程式碼。這些腳本在渲染器內容中執行,但由於可以存取 Node.js API,因此會獲得更多的權限。

另請參閱:渲染器進程內容隔離

進程

進程是正在執行的電腦程式的執行個體。使用主進程和一個或多個渲染器進程的 Electron 應用程式實際上是同時執行多個程式。

在 Node.js 和 Electron 中,每個正在執行的進程都有一個 process 物件。此物件是一個全域變數,可提供有關目前進程的資訊並對其進行控制。作為全域變數,應用程式始終可以使用它,而無需使用 require()。

另請參閱:主進程渲染器進程

渲染器進程

渲染器進程是應用程式中的瀏覽器視窗。與主進程不同,可以有多個渲染器進程,每個都在單獨的進程中執行。它們也可以隱藏起來。

另請參閱:進程主進程

沙箱

沙箱是從 Chromium 繼承的安全功能,它將您的渲染器進程限制為一組有限的權限。

如需更多資訊,請閱讀進程沙箱化教學。

另請參閱:進程

Squirrel

Squirrel 是一個開放原始碼框架,可讓 Electron 應用程式在新版本發佈時自動更新。請參閱autoUpdater API,以瞭解有關開始使用 Squirrel 的資訊。

使用者端

這個詞起源於 Unix 社群,其中「使用者端」或「使用者空間」指的是在作業系統核心之外執行的程式。最近,這個詞在 Node 和 npm 社群中普及,以區分「Node 核心」中可用的功能,以及由更大的「使用者」社群發佈到 npm 登錄檔的套件。

如同 Node,Electron 專注於提供一小組 API,這些 API 提供了開發跨平台桌面應用程式所需的所有基本元素。這種設計理念讓 Electron 保持彈性,而不會過於規定其使用方式。使用者空間(Userland)讓使用者能夠建立和分享工具,以在「核心」提供的功能之上提供額外功能。

公用程式程序

公用程式程序是主程序的子程序,允許執行任何無法在主程序中執行的不信任服務。 Chromium 使用此程序來執行網路 I/O、音訊/視訊處理、裝置輸入等。在 Electron 中,您可以使用 UtilityProcess API 建立此程序。

另請參閱:進程主進程

V8

V8 是 Google 的開源 JavaScript 引擎。它以 C++ 撰寫,並在 Google Chrome 中使用。V8 可以獨立執行,也可以嵌入到任何 C++ 應用程式中。

Electron 將 V8 作為 Chromium 的一部分建置,然後在建置 Node 時將其指向該 V8。

V8 的版本號碼始終與 Google Chrome 的版本號碼相對應。Chrome 59 包括 V8 5.9,Chrome 58 包括 V8 5.8 等等。

webview

webview 標籤用於將「訪客」內容(例如外部網頁)嵌入到您的 Electron 應用程式中。它們與 iframe 類似,但不同之處在於每個 webview 都在單獨的程序中執行。它與您的網頁沒有相同的權限,並且您的應用程式和嵌入內容之間的所有互動都將是異步的。這樣可以保護您的應用程式免受嵌入內容的侵害。