本节我们来学习 Electron 中的环境变量,环境变量主要是用来控制应用程序配置和行为而不用更改代码。某些 Electron 行为是由它控制的,因此它们比命令行标志和应用程序的代码更早初始化。

我们可以将环境变量分为两种:生产环境相关变量和开发环境相关变量。

生产环境相关变量

生产环境相关变量常用于在打包后的 Electron 应用程序运行时使用。有下面几种:

  • NODE_OPTIONSElectron 包括对 Node 的 NODE_OPTIONS 的子集支持,除与 Chromium 使用 BoringSSL 相抵触的情况外,大多数都得到了支持。
  • GOOGLE_API_KEYElectron 包含一个硬编码 API 密码,用于向谷歌的地理编码 web 服务发送请求。
  • ELECTRON_NO_ASAR:禁用 ASAR 支持,该变量只在 set 的派生子进程和衍生子进程中受支持。
  • ELECTRON_RUN_AS_NODE:作为正常的 Node.js 进程启动。在这种模式下,我们可以像运行普通的 Node.js 可执行文件时一样将 cli 选项传递给 Node.js,但以下标志除外:
--openssl-config
--use-bundled-ca
--use-openssl-ca
--force-fips
--enable-fips
  • ELECTRON_NO_ATTACH_CONSOLE:不要附加到当前控制台会话。
  • ELECTRON_FORCE_WINDOW_MENU_BAR:不要在 Linux 上使用全局菜单栏。
  • ELECTRON_TRASH:在 Linux 上设置垃圾回收实现,默认为 gio

开发环境相关变量

开发环境相关变量常用于开发和调试目的。有下面几种:

  • ELECTRON_ENABLE_LOGGING:将 Chrome 的内部日志记录打印到控制台。
  • ELECTRON_LOG_ASAR_READS:当 Electron 从 ASAR 文件读取时,我们需要读取偏移量和文件路径记录到系统 timdir。将结果文件提供给 ASAR 模块以优化文件排序。
  • ELECTRON_ENABLE_STACK_DUMPINGElectron 崩溃时,将堆栈跟踪打印到控制台。如果 crashReporter已经启动了, 则此环境变量将不起作用。
  • ELECTRON_DEFAULT_ERROR_MODE:当 ELectron 崩溃时显示 Windows 的崩溃对话框。如果 crashReporter已经启动了, 则此环境变量将不起作用。
  • ELECTRON_OVERRIDE_DIST_PATH:当 electron 包运行时,该变量告知 electron 命令使用指定 Electron 的构建代替由 npm install 下载的构建。