跳到主要內容

process

擴充 process 物件。

Process: 主要, 渲染

Electron 的 process 物件是從 Node.js process 物件擴充而來。它增加了以下事件、屬性和方法

沙盒

在沙盒化的渲染器中,process 物件僅包含 API 的子集

  • crash()
  • hang()
  • getCreationTime()
  • getHeapStatistics()
  • getBlinkMemoryInfo()
  • getProcessMemoryInfo()
  • getSystemMemoryInfo()
  • getSystemVersion()
  • getCPUUsage()
  • uptime()
  • argv
  • execPath
  • env
  • pid
  • arch
  • platform
  • sandboxed
  • contextIsolated
  • type
  • version
  • versions
  • mas
  • windowsStore
  • contextId

事件

事件:'loaded'

當 Electron 已載入其內部初始化腳本並開始載入網頁或主要腳本時發出。

屬性

process.defaultApp 唯讀

一個 boolean。當應用程式通過作為預設 Electron 可執行檔的參數啟動時,此屬性在主要進程中為 true,否則為 undefined。例如,當使用 electron . 執行應用程式時,即使應用程式已封裝(isPackaged)為 true,它也為 true。這對於確定需要從 process.argv 中刪除多少參數很有用。

process.isMainFrame 唯讀

一個 boolean,當目前渲染器上下文為「主要」渲染器框架時,為 true。如果您想要目前框架的 ID,您應該使用 webFrame.routingId

process.mas 唯讀

一個 boolean。對於 Mac App Store 版本,此屬性為 true,對於其他版本,則為 undefined

process.noAsar

一個 boolean,用於控制應用程式內的 ASAR 支援。將此設定為 true 將會停用 Node 內建模組中對 asar 封存檔的支援。

process.noDeprecation

一個 boolean,用於控制是否將棄用警告列印到 stderr。將此設定為 true 將會靜音棄用警告。此屬性取代 --no-deprecation 命令列旗標使用。

process.resourcesPath 唯讀

一個 string,表示資源目錄的路徑。

process.sandboxed 唯讀

一個 boolean。當渲染器進程被沙盒化時,此屬性為 true,否則為 undefined

process.contextIsolated 唯讀

一個 boolean,表示目前渲染器上下文是否已啟用 contextIsolation。在主要進程中為 undefined

process.throwDeprecation

一個 boolean,用於控制是否將棄用警告做為例外拋出。將此設定為 true 將會針對棄用拋出錯誤。此屬性取代 --throw-deprecation 命令列旗標使用。

process.traceDeprecation

一個 boolean,用於控制列印到 stderr 的棄用是否包含其堆疊追蹤。將此設定為 true 將會針對棄用列印堆疊追蹤。此屬性取代 --trace-deprecation 命令列旗標使用。

process.traceProcessWarnings

一個 boolean,用於控制列印到 stderr 的進程警告是否包含其堆疊追蹤。將此設定為 true 將會針對進程警告(包含棄用)列印堆疊追蹤。此屬性取代 --trace-warnings 命令列旗標使用。

process.type 唯讀

一個 string,表示目前進程的類型,可以是

  • browser - 主要進程
  • renderer - 渲染器進程
  • worker - 在網頁工作者中
  • utility - 在以服務形式啟動的節點進程中

process.versions.chrome 唯讀

一個 string,表示 Chrome 的版本字串。

process.versions.electron 唯讀

一個 string,表示 Electron 的版本字串。

process.windowsStore 唯讀

一個 boolean。如果應用程式做為 Windows 市集應用程式 (appx) 執行,此屬性為 true,否則為 undefined

process.contextId 唯讀

一個 string(選用),表示目前 JavaScript 上下文的全球唯一 ID。每個框架都有自己的 JavaScript 上下文。當啟用 contextIsolation 時,隔離的世界也有一個獨立的 JavaScript 上下文。此屬性僅在渲染器進程中可用。

process.parentPort

如果這是 UtilityProcess,則為 Electron.ParentPort 屬性(否則為 null),可允許與父進程進行通訊。

方法

process 物件具有以下方法

process.crash()

導致目前進程的主要執行緒崩潰。

process.getCreationTime()

傳回 number | null - 自 epoch 以來的毫秒數,如果資訊不可用,則傳回 null

表示應用程式的建立時間。時間表示為自 epoch 以來的毫秒數。如果無法取得進程建立時間,則傳回 null。

process.getCPUUsage()

傳回 CPUUsage

process.getHeapStatistics()

傳回 Object

  • totalHeapSize 整數
  • totalHeapSizeExecutable 整數
  • totalPhysicalSize 整數
  • totalAvailableSize 整數
  • usedHeapSize 整數
  • heapSizeLimit 整數
  • mallocedMemory 整數
  • peakMallocedMemory 整數
  • doesZapGarbage 布林值

傳回包含 V8 堆積統計資訊的物件。請注意,所有統計資訊皆以 KB 為單位回報。

process.getBlinkMemoryInfo()

傳回 Object

  • allocated 整數 - 所有配置物件的大小,以 KB 為單位。
  • total 整數 - 配置的總空間,以 KB 為單位。

傳回包含 Blink 記憶體資訊的物件。這對於除錯與呈現/DOM 相關的記憶體問題很有用。請注意,所有值皆以 KB 為單位回報。

process.getProcessMemoryInfo()

傳回 Promise<ProcessMemoryInfo> - 使用 ProcessMemoryInfo 解析

返回一個物件,其中包含目前程序的記憶體使用統計資訊。請注意,所有統計資訊均以 KB 為單位回報。此 API 應在應用程式準備就緒後呼叫。

Chromium 不為 macOS 提供 residentSet 值。這是因為 macOS 會對最近未使用的頁面執行記憶體內壓縮。因此,常駐集大小值並非人們所預期的。private 記憶體更能代表 macOS 上程序實際壓縮前的記憶體使用量。

process.getSystemMemoryInfo()

傳回 Object

  • total 整數 - 系統可用的實體記憶體總量,以 KB 為單位。
  • free 整數 - 未被應用程式或磁碟快取使用的記憶體總量。
  • swapTotal 整數 Windows Linux - 系統可用的交換記憶體總量,以 KB 為單位。
  • swapFree 整數 Windows Linux - 系統可用的空閒交換記憶體量,以 KB 為單位。

返回一個物件,其中包含整個系統的記憶體使用統計資訊。請注意,所有統計資訊均以 KB 為單位回報。

process.getSystemVersion()

返回 string - 主機作業系統的版本。

範例

const version = process.getSystemVersion()
console.log(version)
// On macOS -> '10.13.6'
// On Windows -> '10.0.17763'
// On Linux -> '4.15.0-45-generic'

注意:os.release() 不同,它在 macOS 上返回實際的作業系統版本,而不是核心版本。

process.takeHeapSnapshot(filePath)

  • filePath 字串 - 輸出檔案的路徑。

返回 boolean - 指示快照是否已成功建立。

取得 V8 堆積快照並將其儲存到 filePath

process.hang()

導致目前程序的主執行緒掛起。

process.setFdLimit(maxDescriptors) macOS Linux

  • maxDescriptors 整數

將檔案描述符軟限制設定為 maxDescriptors 或作業系統硬限制,以較低者為準(針對目前程序)。