詞彙表
本頁面定義了 Electron 開發中常用的一些術語。
ASAR
ASAR 代表 Atom Shell Archive Format(Atom Shell 封存格式)。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 上,MSI 套件由 Windows Installer(也稱為 Microsoft Installer)服務用於安裝和配置應用程式。
更多資訊請參閱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 應用程式能夠在新版本發布時自動更新。有關開始使用 Squirrel 的資訊,請參閱autoUpdater API。
使用者空間
此術語起源於 Unix 社群,其中「使用者空間」或「使用者領域」指的是在作業系統核心之外執行的程式。最近,該術語已在 Node 和 npm 社群中普及,用於區分「Node 核心」中可用的功能與由更大的「使用者」社群發布到 npm 註冊表的套件。
與 Node 一樣,Electron 專注於擁有一小組 API,這些 API 提供開發多平台桌面應用程式的所有必要基本功能。這種設計理念使 Electron 能夠保持靈活的工具,而又不會過於規範其使用方式。使用者空間使使用者能夠建立和共享工具,以在「核心」中可用的功能之上提供額外功能。
實用程序
實用程序是主要程序的子程序,允許執行任何無法在主要程序中運行的不受信任的服務。Chromium 使用此程序來執行網路 I/O、音訊/視訊處理、裝置輸入等。在 Electron 中,您可以使用UtilityProcess API 建立此程序。
V8
V8 是 Google 的開放原始碼 JavaScript 引擎。它以 C++ 編寫,並在 Google Chrome 中使用。V8 可以獨立運行,也可以嵌入到任何 C++ 應用程式中。
Electron 在建置 Chromium 時建置 V8,然後在建置 Node 時將 Node 指向該 V8。
V8 的版本號始終與 Google Chrome 的版本號對應。Chrome 59 包含 V8 5.9,Chrome 58 包含 V8 5.8,依此類推。
webview
webview
標籤用於在您的 Electron 應用程式中嵌入「訪客」內容(例如外部網頁)。它們與 iframe
類似,但不同之處在於每個 webview 都在單獨的程序中運行。它與您的網頁沒有相同的權限,並且您的應用程式與嵌入內容之間的所有互動都將是非同步的。這可以保護您的應用程式免受嵌入內容的影響。