跳至主要内容

环境变量

在不更改代码的情况下控制应用程序配置和行为。

某些 Electron 行为受环境变量控制,因为它们在命令行标志和应用程序代码初始化之前就被初始化。

POSIX shell 示例

$ export ELECTRON_ENABLE_LOGGING=true
$ electron

Windows 控制台示例

> set ELECTRON_ENABLE_LOGGING=true
> electron

生产环境变量

以下环境变量主要用于打包后的 Electron 应用程序的运行时。

NODE_OPTIONS

Electron 支持 Node 的 NODE_OPTIONS 的一个子集。除了与 Chromium 使用 BoringSSL 冲突的那些之外,大多数都受支持。

示例

export NODE_OPTIONS="--no-warnings --max-old-space-size=2048"

不受支持的选项是

--use-bundled-ca
--force-fips
--enable-fips
--openssl-config
--use-openssl-ca

NODE_OPTIONS 在打包的应用程序中被明确禁止,除了以下情况

--max-http-header-size
--http-parser

如果 nodeOptions 保险丝 被禁用,则 NODE_OPTIONS 将被忽略。

NODE_EXTRA_CA_CERTS

有关详细信息,请参阅 Node.js cli 文档

export NODE_EXTRA_CA_CERTS=/path/to/cert.pem 

如果 nodeOptions 保险丝 被禁用,则 NODE_EXTRA_CA_CERTS 将被忽略。

GOOGLE_API_KEY

Electron 中的地理位置支持需要使用 Google Cloud Platform 的地理位置网络服务。要启用此功能,请获取 Google API 密钥 并将以下代码放在您的主进程文件中,在打开任何将发出地理位置请求的浏览器窗口之前

process.env.GOOGLE_API_KEY = 'YOUR_KEY_HERE'

默认情况下,新生成的 Google API 密钥可能不允许发出地理位置请求。要为您的项目启用地理位置网络服务,请通过 API 库 启用它。

注意:您需要在与 API 密钥关联的项目中添加 计费帐户,才能使地理位置网络服务正常工作。

ELECTRON_NO_ASAR

禁用 ASAR 支持。此变量仅在派生子进程和设置了 ELECTRON_RUN_AS_NODE 的派生子进程中受支持。

ELECTRON_RUN_AS_NODE

将进程作为普通的 Node.js 进程启动。

在此模式下,您可以像运行正常的 Node.js 可执行文件一样向 Node.js 传递 cli 选项,但以下标志除外

  • "--openssl-config"
  • "--use-bundled-ca"
  • "--use-openssl-ca",
  • "--force-fips"
  • "--enable-fips"

这些标志被禁用,因为 Electron 在构建 Node.js 的 crypto 模块时使用 BoringSSL 而不是 OpenSSL,因此不会按预期工作。

如果 runAsNode 保险丝 被禁用,则 ELECTRON_RUN_AS_NODE 将被忽略。

ELECTRON_NO_ATTACH_CONSOLE Windows

不要附加到当前的控制台会话。

ELECTRON_FORCE_WINDOW_MENU_BAR Linux

不要在 Linux 上使用全局菜单栏。

ELECTRON_TRASH Linux

设置 Linux 上的垃圾桶实现。默认值为 gio

选项

  • gvfs-trash
  • trash-cli
  • kioclient5
  • kioclient

ELECTRON_OZONE_PLATFORM_HINT Linux

选择在 Linux 上使用的首选平台后端。默认值为 x11auto 会在可能的情况下选择 Wayland,否则选择 X11。

选项

  • auto
  • wayland
  • x11

开发环境变量

以下环境变量主要用于开发和调试目的。

ELECTRON_ENABLE_LOGGING

将 Chromium 的内部日志打印到控制台。

设置此变量与在命令行上传递 --enable-logging 相同。有关更多信息,请参阅 命令行开关 中的 --enable-logging

ELECTRON_LOG_FILE

设置 Chromium 内部日志的文件目标。

设置此变量与在命令行上传递 --log-file 相同。有关更多信息,请参阅 命令行开关 中的 --log-file

ELECTRON_DEBUG_NOTIFICATIONS

在 macOS 上向 Notification 生命周期添加额外的日志以帮助调试。创建或激活新通知时将显示额外的日志。当执行常见操作时,它们也会显示:显示通知、关闭通知、单击其按钮或回复通知。

示例输出

Notification created (com.github.Electron:notification:EAF7B87C-A113-43D7-8E76-F88EC9D73D44)
Notification displayed (com.github.Electron:notification:EAF7B87C-A113-43D7-8E76-F88EC9D73D44)
Notification activated (com.github.Electron:notification:EAF7B87C-A113-43D7-8E76-F88EC9D73D44)
Notification replied to (com.github.Electron:notification:EAF7B87C-A113-43D7-8E76-F88EC9D73D44)

ELECTRON_LOG_ASAR_READS

当 Electron 从 ASAR 文件读取时,将读取偏移量和文件路径记录到系统 tmpdir。生成的可以提供给 ASAR 模块以优化文件排序。

ELECTRON_ENABLE_STACK_DUMPING

当 Electron 崩溃时,将堆栈跟踪打印到控制台。

如果启动了 crashReporter,则此环境变量将不起作用。

ELECTRON_DEFAULT_ERROR_MODE Windows

当 Electron 崩溃时,显示 Windows 的崩溃对话框。

如果启动了 crashReporter,则此环境变量将不起作用。

ELECTRON_OVERRIDE_DIST_PATH

electron 包运行时,此变量告诉 electron 命令使用指定的 Electron 版本,而不是 npm install 下载的版本。用法

export ELECTRON_OVERRIDE_DIST_PATH=/Users/username/projects/electron/out/Testing

由 Electron 设置

Electron 在运行时在您的环境中设置了一些变量。

ORIGINAL_XDG_CURRENT_DESKTOP

此变量设置为应用程序最初启动时 XDG_CURRENT_DESKTOP 的值。Electron 有时会修改 XDG_CURRENT_DESKTOP 的值以影响 Chromium 中的其他逻辑,因此如果您想访问原始值,则应查找此环境变量。