跳到主要內容

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 值,當前渲染器上下文為「main」渲染器框架時為 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 - 渲染器程序
  • service-worker - 在 service worker 中
  • worker - 在 web worker 中
  • utility - 在作為服務啟動的 node 程序中

process.versions.chrome 唯讀

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

process.versions.electron 唯讀

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

process.windowsStore 唯讀

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

process.contextId 唯讀

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

process.parentPort

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

方法

process 物件具有以下方法

process.crash()

導致當前程序的 Main Thread(主執行緒)崩潰。

process.getCreationTime()

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

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

process.getCPUUsage()

傳回 CPUUsage

process.getHeapStatistics()

傳回 Object

  • totalHeapSize Integer (整數)
  • totalHeapSizeExecutable Integer (整數)
  • totalPhysicalSize Integer (整數)
  • totalAvailableSize Integer (整數)
  • usedHeapSize Integer (整數)
  • heapSizeLimit Integer (整數)
  • mallocedMemory Integer (整數)
  • peakMallocedMemory Integer (整數)
  • doesZapGarbage boolean (布林值)

傳回具有 V8 堆積統計資訊的物件。請注意,所有統計資訊均以 Kilobytes (千位元組) 為單位報告。

process.getBlinkMemoryInfo()

傳回 Object

  • allocated Integer (整數) - 以 Kilobytes (千位元組) 為單位表示的所有已配置物件的大小。
  • total Integer (整數) - 以 Kilobytes (千位元組) 為單位表示的總配置空間。

傳回具有 Blink 記憶體資訊的物件。它對於偵錯渲染/DOM 相關的記憶體問題很有用。請注意,所有值均以 Kilobytes (千位元組) 為單位報告。

process.getProcessMemoryInfo()

傳回 Promise<ProcessMemoryInfo> - 解析為 ProcessMemoryInfo

傳回一個物件,其中包含有關當前程序的記憶體使用統計資訊。請注意,所有統計資訊均以 Kilobytes (千位元組) 為單位報告。此 API 應在應用程式準備就緒後呼叫。

Chromium 不為 macOS 提供 residentSet 值。這是因為 macOS 會對最近未使用的頁面執行記憶體內壓縮。因此,resident set size 值並不如預期。private 記憶體更能代表 macOS 上程序的實際預壓縮記憶體使用量。

process.getSystemMemoryInfo()

傳回 Object

  • total Integer (整數) - 系統可用的實體記憶體總量,以 Kilobytes (千位元組) 為單位。
  • free Integer (整數) - 應用程式或磁碟快取未使用的記憶體總量。
  • swapTotal Integer (整數) Windows Linux - 系統可用的交換記憶體總量,以 Kilobytes (千位元組) 為單位。
  • swapFree Integer (整數) Windows Linux - 系統可用的可用交換記憶體量,以 Kilobytes (千位元組) 為單位。

傳回一個物件,其中包含有關整個系統的記憶體使用統計資訊。請注意,所有統計資訊均以 Kilobytes (千位元組) 為單位報告。

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 string - 輸出檔案的路徑。

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

拍攝 V8 堆積快照並將其儲存到 filePath

process.hang()

導致當前程序的 Main Thread(主執行緒)停止回應。

process.setFdLimit(maxDescriptors) macOS Linux

  • maxDescriptors Integer (整數)

將檔案描述符軟限制設定為 maxDescriptors 或 OS 硬限制,以較低者為準用於當前程序。