跳到内容

环境变量

有时你需要你的 webpack 构建依赖于特定的环境变量。无论你需要设置全局 API Url 还是应用程序名称,这里是如何设置 electron-webpack 将为你的应用程序提供的变量的方法。

ELECTRON_WEBPACK_APP_*

如果你希望 electron-webpack 在构建过程中提供环境变量,请使用 ELECTRON_WEBPACK_APP_* 命名空间,它们将被注入。

用例

假设我们的应用程序使用 CI 服务器来运行测试,并且我们也希望该构建使用我们的开发 API。我们可以设置一个环境变量来定义 axios 可以使用的基础 Url。

设置我们的环境变量
# linux and darwin systems
ELECTRON_WEBPACK_APP_API_URL="http://dev.domain.com/api"

# win32 systems
set ELECTRON_WEBPACK_APP_API_URL="http://dev.domain.com/api"
在我们的代码中引用该变量
import axios from 'axios'

axios.defaults.baseURL = process.env.ELECTRON_WEBPACK_APP_API_URL

ELECTRON_ARGS

如果你需要在开发期间为 electron 进程本身提供参数,你可以使用 ELECTRON_ARGS 环境变量来实现。

从 CLI

当从 CLI 指定 ELECTRON_ARGS 时,请注意它将被解析为值数组的 JSON 字符串。因此,你必须将值包裹在方括号中,并在 unix 系统上转义像双引号这样的字符。例如,如果在 package.json 中你有一个脚本 "dev": "electron-webpack dev",你可以像这样使用 --inspect-brk 参数来调用它

# linux and darwin systems, git bash on windows
ELECTRON_ARGS=[\"--inspect-brk=9229\"] yarn dev

# win32 systems, cmd
set ELECTRON_ARGS=["--inspect-brk=9229"]&&yarn dev
.env 文件

由于 electron-webpack 在底层使用了 dotenv 库,所以你可以创建一个 .env 文件并指定环境变量,而不是处理 CLI 参数、转义以及 Windows 和 Unix 系统之间的差异。

ELECTRON_ARGS=["--inspect-brk=9229"]