跳转到主要内容

process

用于处理 process 对象。

进程:主进程, 渲染进程

Electron 的 process 对象是在 Node.js process 对象的基础上扩展的。它增加了以下事件、属性和方法:

沙盒(Sandbox)

在沙盒化的渲染器进程中,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 . 运行应用时,即使应用已打包(isPackagedtrue),此属性也为 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 - 渲染器进程
  • service-worker - 服务工作进程
  • worker - Web Worker
  • utility - 作为服务启动的 Node.js 进程

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(否则为 null),则此属性为 Electron.ParentPort 类型,允许与父进程进行通信。

方法

process 对象具有以下方法:

process.crash()

使当前进程的主线程崩溃。

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 - 所有已分配对象的字节数(以千字节为单位)。
  • total Integer - 总分配空间(以千字节为单位)。

返回一个包含 Blink 内存信息的对象。这对于调试与渲染/DOM 相关的内存问题可能很有用。请注意,所有值均以千字节(Kilobytes)为单位报告。

process.getProcessMemoryInfo()

返回 Promise<ProcessMemoryInfo> - 解析为 ProcessMemoryInfo 对象。

返回一个关于当前进程内存使用情况的统计信息的对象。请注意,所有统计信息均以千字节(Kilobytes)为单位报告。此 API 应在 app ready 后调用。

Chromium 不为 macOS 提供 residentSet 值。这是因为 macOS 会对最近未使用的页面进行内存压缩。因此,常驻集大小值可能不如预期。对于 macOS 而言,private 内存更能代表进程在压缩前的实际内存使用情况。

process.getSystemMemoryInfo()

返回 Object

  • total Integer - 系统可用的总物理内存量(以千字节为单位)。
  • free Integer - 未被应用程序或磁盘缓存使用的总内存量。
  • fileBacked Integer macOS - 当前已分页到存储的内存量。包括文件缓存、网络缓冲区和其他系统服务的内存。
  • purgeable Integer macOS - 被标记为“可清除”的内存量。如果内存压力增加,系统可以回收这部分内存。
  • swapTotal Integer Windows Linux - 系统可用的总交换内存量(以千字节为单位)。
  • swapFree Integer Windows Linux - 系统可用的空闲交换内存量(以千字节为单位)。

返回一个关于整个系统内存使用情况的统计信息的对象。请注意,所有统计信息均以千字节(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'
注意

在 macOS 上,它返回实际的操作系统版本,而不是内核版本,这与 os.release() 不同。

process.takeHeapSnapshot(filePath)

  • filePath string - 输出文件的路径。

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

拍摄 V8 堆快照并将其保存到 filePath

process.hang()

使当前进程的主线程挂起。

process.setFdLimit(maxDescriptors) macOS Linux

  • maxDescriptors Integer

将文件描述符的软限制设置为 maxDescriptors 或操作系统的硬限制(以较低者为准)的当前进程。