环境变量
在不更改代码的情况下控制应用程序的配置和行为。
某些 Electron 的行为是由环境变量控制的,因为它们的初始化时间早于命令行标志和应用程序代码。
POSIX shell 示例
$ export ELECTRON_ENABLE_LOGGING=true
$ electron
Windows 控制台示例
> set ELECTRON_ENABLE_LOGGING=true
> electron
生产环境变量
以下环境变量主要用于打包的 Electron 应用程序的运行时。
NODE_OPTIONS
Electron 支持 Node.js 的部分 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 进程启动。
在此模式下,您可以将 cli 选项 传递给 Node.js,就像运行普通 Node.js 可执行文件一样,但以下标志除外:
- "--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 上使用的首选平台后端。默认是 x11
。auto
在可能的情况下选择 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 时,将显示额外的日志。当执行常见操作时,也会显示日志: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 中的其他逻辑,因此如果您想访问原始值,则应查找此环境变量。