Electron - 环境变量
Electron - 环境变量
Section titled “Electron - 环境变量”环境变量是一种强大的方式,可以在不修改代码的情况下控制应用的配置和行为。Electron 的一些行为由环境变量管理,因为它们在命令行参数或应用代码生效之前就已经初始化了。
Electron 识别多种环境变量,大致分为用于生产环境(production)和用于开发/调试(development/debugging)两类。
生产环境变量
Section titled “生产环境变量”这些变量主要用于打包后的 Electron 应用的运行时(runtime)。
| 变量 | 描述 |
|---|---|
ELECTRON_NO_ASAR | 当设置为 true 时,禁用 ASAR 归档支持。这对于调试与 ASAR 打包相关的问题非常有用。通常,ASAR 归档通过连接文件来提升性能。 |
ELECTRON_RUN_AS_NODE | 设置后,Electron 将进程作为正常的 Node.js 进程启动,绕过典型的 Electron 应用生命周期。这对于运行需要 Electron 捆绑 Node 提供的 Node.js API 的工具脚本或测试非常有用。 |
GOOGLE_API_KEY | Electron 对某些位置 API 使用 Google 的地理编码(geocoding)网络服务。如果你的应用频繁发出地理编码请求,默认的共享 API 密钥可能会达到速率限制(rate limits)。在你的主进程文件(main process file)中、在任何需要地理编码的窗口打开之前,将此变量设置为你自己的 Google API 密钥:process.env.GOOGLE_API_KEY = 'YOUR_OWN_API_KEY'; |
ELECTRON_FORCE_WINDOW_MENU_BAR (仅限 Linux) | 在某些 Linux 发行版上,Electron 默认可能使用全局菜单栏。设置此变量(例如 ELECTRON_FORCE_WINDOW_MENU_BAR=1)会强制 Electron 使用窗口自己的菜单栏而不是全局菜单栏。 |
开发环境变量
Section titled “开发环境变量”这些变量主要用于开发和调试目的。
| 变量 | 描述 |
|---|---|
ELECTRON_ENABLE_LOGGING | 设置后(例如 ELECTRON_ENABLE_LOGGING=true),会将 Chrome 的内部日志消息打印到控制台。这可能会非常详细,但对于诊断底层问题很有帮助。 |
ELECTRON_ENABLE_STACK_DUMPING | 设置后(例如 ELECTRON_ENABLE_STACK_DUMPING=true),如果应用崩溃,Electron 会将堆栈跟踪(stack trace)打印到控制台。这对于识别原生崩溃的源头非常有用。 |
ELECTRON_DISABLE_SANDBOX (谨慎使用) | 当设置为 true 时,这会禁用所有进程(包括渲染进程 renderer processes)的 Chromium 沙箱(sandbox)。这对于某些调试场景或者你需要在不使用预加载脚本(preload script)的情况下直接在渲染进程中使用 Node.js 功能时很有用,但这会显著降低安全性。通常建议保持沙箱启用,并使用预加载脚本来访问 Node.js。 |
ELECTRON_DEFAULT_ERROR_MODE (仅限 Windows) | 在 Windows 上,设置此变量(例如 ELECTRON_DEFAULT_ERROR_MODE=true)会在 Electron 崩溃时显示 Windows 崩溃对话框,这可能会提供更多关于崩溃的系统级信息。 |
设置环境变量
Section titled “设置环境变量”如何设置环境变量取决于你的操作系统和 Shell。
对于 Windows(命令提示符 Command Prompt)
Section titled “对于 Windows(命令提示符 Command Prompt)”set ELECTRON_ENABLE_LOGGING=trueREM 现在从同一个终端运行你的 electron 应用对于 Windows(PowerShell)
Section titled “对于 Windows(PowerShell)”$env:ELECTRON_ENABLE_LOGGING="true"# 现在从同一个终端运行你的 electron 应用对于 Linux / macOS (bash/zsh)
Section titled “对于 Linux / macOS (bash/zsh)”export ELECTRON_ENABLE_LOGGING=true# 现在从同一个终端运行你的 electron 应用这些设置通常只对当前的终端会话(terminal session)有效。要使它们永久生效,你需要将它们添加到你的 Shell 配置文件中(例如 .bashrc、.zshrc 或 Windows 系统属性中的“环境变量”设置)。
为了在 package.json 脚本中实现跨平台一致性,可以考虑使用像 cross-env 这样的工具:
// 首先,安装它:npm install --save-dev cross-env// 然后,在 package.json 脚本中:"scripts": { "start-debug": "cross-env ELECTRON_ENABLE_LOGGING=true electron ."}