process
用于处理 process 对象。
Electron 的 process 对象是在 Node.js process 对象的基础上扩展的。它增加了以下事件、属性和方法:
沙盒(Sandbox)
在沙盒化的渲染器进程中,process 对象仅包含一部分 API。
crash()hang()getCreationTime()getHeapStatistics()getBlinkMemoryInfo()getProcessMemoryInfo()getSystemMemoryInfo()getSystemVersion()getCPUUsage()uptime()argvexecPathenvpidarchplatformsandboxedcontextIsolatedtypeversionversionsmaswindowsStorecontextId
事件
事件: '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- 渲染器进程service-worker- 服务工作进程worker- Web Workerutility- 作为服务启动的 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
totalHeapSizeIntegertotalHeapSizeExecutableIntegertotalPhysicalSizeIntegertotalAvailableSizeIntegerusedHeapSizeIntegerheapSizeLimitIntegermallocedMemoryIntegerpeakMallocedMemoryIntegerdoesZapGarbageboolean
返回一个包含 V8 堆统计信息的对象。请注意,所有统计信息均以千字节(Kilobytes)为单位报告。
process.getBlinkMemoryInfo()
返回 Object
allocatedInteger - 所有已分配对象的字节数(以千字节为单位)。totalInteger - 总分配空间(以千字节为单位)。
返回一个包含 Blink 内存信息的对象。这对于调试与渲染/DOM 相关的内存问题可能很有用。请注意,所有值均以千字节(Kilobytes)为单位报告。
process.getProcessMemoryInfo()
返回 Promise<ProcessMemoryInfo> - 解析为 ProcessMemoryInfo 对象。
返回一个关于当前进程内存使用情况的统计信息的对象。请注意,所有统计信息均以千字节(Kilobytes)为单位报告。此 API 应在 app ready 后调用。
Chromium 不为 macOS 提供 residentSet 值。这是因为 macOS 会对最近未使用的页面进行内存压缩。因此,常驻集大小值可能不如预期。对于 macOS 而言,private 内存更能代表进程在压缩前的实际内存使用情况。
process.getSystemMemoryInfo()
返回 Object
totalInteger - 系统可用的总物理内存量(以千字节为单位)。freeInteger - 未被应用程序或磁盘缓存使用的总内存量。fileBackedInteger macOS - 当前已分页到存储的内存量。包括文件缓存、网络缓冲区和其他系统服务的内存。purgeableInteger macOS - 被标记为“可清除”的内存量。如果内存压力增加,系统可以回收这部分内存。swapTotalInteger Windows Linux - 系统可用的总交换内存量(以千字节为单位)。swapFreeInteger 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)
filePathstring - 输出文件的路径。
返回 boolean - 指示快照是否已成功创建。
拍摄 V8 堆快照并将其保存到 filePath。
process.hang()
使当前进程的主线程挂起。
process.setFdLimit(maxDescriptors) macOS Linux
maxDescriptorsInteger
将文件描述符的软限制设置为 maxDescriptors 或操作系统的硬限制(以较低者为准)的当前进程。