ElectronJS 中的环境变量
ElectronJS 是一个开源框架,用于使用能够在 Windows、macOS 和 Linux 操作系统上运行的 HTML、CSS 和 JavaScript 等 Web 技术构建跨平台本机桌面应用程序。它将 Chromium 引擎和 NodeJS 组合到单个运行时中。
我们已经讨论过 ElectronJS 中的命令行参数。命令行参数很重要,因为它们可用于控制应用程序的行为。我们可以在启动时从应用程序外部将命令行参数传递给 Electron,或者我们可以简单地在应用程序中对这些值进行硬编码。 Electron 中的环境变量还可以在不更改代码的情况下控制应用程序的配置和行为。 Electron 中的一些特定行为是由环境变量而不是命令行参数控制的,因为它们的初始化早于命令行标志和应用程序的主函数代码。在本教程中,我们将了解 Electron 使用的不同环境变量及其各自的分类。
我们假设您熟悉上述链接中介绍的先决条件。为了让Electron正常工作,需要在系统中预先安装node和npm。
如上所述,如果我们在应用程序中硬编码命令行标志,我们需要导入 app 模块的 CommandLine 属性,但我们不需要任何额外的代码更改在 Electron 中设置环境变量。不过,由于Electron也支持全局的Process对象,所以我们也可以通过代码设置环境变量。例如:
www.introzo.com_API_KEY = 'YOUR_KEY_HERE'
有关 process 对象的更多详细信息,请遵循 ElectronJS 中的 Process Object。 Electron 提供了两个主要的环境变量:
- 开发变量
- 生产变量
顾名思义, 开发环境变量 主要用于应用程序中的开发和调试目的。
- ELECTRON_ENABLE_LOGGING:此环境变量设置为true以将 Chromium 的内部日志打印到应用程序的控制台。 / tmpdir。生成的文件可以提供给ASAR模块来优化文件排序,从而提高Electron应用程序的性能并减少系统资源的负载。 ASAR存档是一种简单的类似 tar 的格式,可将文件连接到单个文件中。 Electron 可以从中读取任意文件,而无需解压整个文件。这个环境变量是在 Electron 的后续版本中引入的。
- ELECTRON_ENABLE_STACK_DUMPING:此环境变量设置为true,然后在 Electron 应用程序崩溃时将错误堆栈跟踪打印到控制台。如果启动 crashReporter,此环境变量将不起作用。 Electron 中的 crashReporter 模块负责向远程服务器提交崩溃报告。有关 crashReporter 模块的更多详细信息。
- ELECTRON_DEFAULT_ERROR_MODE:此环境变量仅在Windows 操作系统中受支持。该环境变量设置为 true,以便在 Electron 应用程序崩溃时显示 Windows 操作系统崩溃对话框。就像ELECTRON_ENABLE_STACK_DUMPING一样,如果crashReporter启动,此环境变量将不起作用。
- ELECTRON_OVERRIDE_DIST_PATH:在开发环境中从包文件运行应用程序时,此环境变量告诉 Electron 使用指定的 Electron 版本,而不是通过 npm install 下载的版本。该环境变量接受一个字符串文件路径,其中特定的 Electron 版本存储在本机系统上。当我们对最初下载的 Electron 包的源代码进行自己的更改时,这尤其有用。
顾名思义,生产环境变量主要用于在打包的 Electron 应用程序中运行时使用。当将打包的 Electron 应用程序部署到生产环境中的不同服务器时,这些环境变量特别有用。
- NODE_OPTIONS:由于 Electron 将 NodeJS 和 Chromium 组合到单个运行时中,Electron 支持NodeJS NODE_OPTIONS 环境变量的子集。 Electron 支持提供的大多数选项,但与 Chromium 使用 BoringSSL 冲突的选项除外。 BoringSSL 是 OpenSSL 的一个分支,旨在满足 Google 的需求。 OpenSSL 是一款功能强大、商业级且功能齐全的工具包,适用于 HTTP 中的传输层安全 (TLS) 和安全套接字层 (SSL) 协议。它也是一个通用的密码库。
我们可以为NODE_OPTIONS环境变量提供多个选项。不支持的选项有:- – 使用捆绑的 ca
- --force-fips
- --enable-fips
- --openssl-config En -- - 使用 -Pensl-CA
- -Max-HTTP-Header-siZe
- -HTTP-parser
- Google_api_Key: Google An API 的许多服务_KEY需要为该特定项目的该特定用户生成,以便从应用程序内访问这些服务。例如,Electron 中的地理定位支持需要使用 Google Cloud Platform 的地理定位 Web 服务。要启用此功能,我们需要获取 Google API 密钥。该密钥通常在 Electron 应用程序中进行硬编码,并且由于该 API 密钥包含在每个有效会话的 Electron 版本中,因此它通常会超出其使用配额。为了防止这种情况,我们需要将 API 密钥添加为环境的一部分。我们可以通过在打开任何将请求 Google 服务的应用程序窗口或函数之前将以下代码放置在主进程文件中来实现此目的:
www.introzo.com_API_KEY = 'YOUR_KEY_HERE'
- 我们还可以使用此环境变量从应用程序外部设置,以便它对每个新的 Google 服务请求会话都有效,直到过期。
- ELECTRON_RUN_AS_NODE:此环境变量设置为 true 以将 Electron 进程作为正常的 NodeJS 进程启动。
- ELECTRON_NO_ASAR:此环境变量设置为true以禁用对 Electron 应用程序的 ASAR 支持。仅在设置 ELECTRON_RUN_AS_NODE 环境变量的 派生的 子进程和 派生的 子进程中受支持。
- ELECTRON_NO_ATTACH_CONSOLE:此环境变量仅在 Windows 操作系统中受支持。将此环境变量设置为 true 不会将控制台日志附加到当前控制台会话。因此,应用程序不会打印任何日志。
- ELECTRON_FORCE_WINDOW_MENU_BAR:此环境变量仅在 Linux 操作系统中受支持。将此环境变量设置为 true 将不会在 Linux 平台上为 Electron 应用程序使用全局菜单栏。
- ELECTRON_TRASH:此环境变量仅在 Linux 操作系统中受支持。该环境变量在 Linux 平台上设置垃圾实现。该环境变量设置的默认值为gio。它可以保存以下值:
- gvfs-trash
- trash-cli
- kioclient5
- client
除了生产和开发除了环境变量之外,还有一些Electron本身在运行时在本地系统环境中设置的变量。
- ORIGINAL_XDG_CURRENT_DESKTOP:此变量设置为应用程序最初启动时使用的 XDG_CURRENT_DESKTOP 的值。 Electron 有时会修改 XDG_CURRENT_DESKTOP 的值来影响 Chromium 中的其他逻辑。因此,如果我们想要访问原始值,我们应该寻找这个环境变量。 XDG_CURRENT_DESKTOP环境变量告知您当前正在使用的桌面环境。该变量因操作系统和平台而异。除了 Electron 之外,该变量还被其他进程和应用程序使用,是一个系统环境变量。
Electron 设置环境变量的使用示例
- Windows 控制台 :
~$ set ELECTRON_ENABLE_LOGGING=true
- POSIX Shell :
~$ 导出 ELECTRON_ENABLE_LOGGING=true
输出:
注意:这些环境变量是重置的,每次电脑重启时都需要重置。如果我们想避免这样做,我们需要将这些环境变量及其各自的值添加到.bashrc文件中。 .bashrc 是一个 shell 脚本,在 Bash 交互启动时运行。它初始化一个交互式 shell 会话。我们可以将在命令提示符中输入的任何命令放入此文件中,并且它们不会被重置,例如本例中的 Electron 的环境变量。
相关文章
- 10-05 高通CEO爆料苹果自研5G芯片明年准备就绪
- 10-05 全球智能手机市场被扰乱:iPhone与Androi
- 10-05 苹果最新巧克力广告:Apple Card激活到付款
- 10-05 苹果推出iOS 15.6正式版固件:我们来看看iO
- 10-05 iPadOS 16 允许应用程序使用 M1 设备存
- 10-05 为迎接Apple Watch 10周年:Appl
- 10-05 STM32连接esp32(stm32连接esp32
- 10-05 stm32串口dma发送和接收周期数据和随机数据(
- 10-05 stm32点亮led灯ad20 (stm32点亮l
- 10-05 esp32编程接线图(esp32编程程序接线图)
- 10-05 DAC0832波形发生器课程设计报告(dac083
- 10-05 vs2010单行读取文本_VS2010-MFC获取
- 10-05 Web漏洞-SQL注入(二)
- 10-05 phpunit thinkphp模型单元测试
- 10-05 phpunit selenium 操作 html
- 10-05 【第201期】面试官:String的长度有限制吗?
- 10-05 【第256期】面试官经常测试的21条Linux命令
- 10-05 【第256期】面试官常测试的21条Linux命令
- 10-05 【第368期】为什么阿里巴巴禁止MyBatis使用
- 10-05 【第208期】我们来敲黑板,说说如何设计秒杀系统(
- 最近发表