Environment Variables
Sometimes you need your webpack
build to be dependent upon specific environment variables. Whether you need to set a global API Url or even the application name, here’s how you can set variables that electron-webpack
will provide for your application.
ELECTRON_WEBPACK_APP_*
¶
If you want electron-webpack
to provide environment variables during the build process, use the ELECTRON_WEBPACK_APP_*
namespace and they will be injected.
Use Case¶
Let’s say our application uses a CI server to run tests, and we also want that build to use our development API. We can set an environment variable to define the base Url that axios
can use.
Set our environment variable¶
# 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"
Reference that variable in our code¶
import axios from 'axios'
axios.defaults.baseURL = process.env.ELECTRON_WEBPACK_APP_API_URL
ELECTRON_ARGS
¶
If you need to provide arguments to the electron
process itself during development, you can do so using the ELECTRON_ARGS
environment variable.
From the CLI¶
When specifying ELECTRON_ARGS
from the CLI, please note that it will be parsed as a JSON string of an array of values. Thus, you will have to wrap the value in square brackets, and on unix systems escape characters like double quotes.
For example, if in package.json you have a script "dev": "electron-webpack dev"
, you can invoke it with the --inspect-brk
argument like this:
# 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
From an .env
file¶
Since electron-webpack
uses the dotenv library under the hood, instead of wrestling with CLI arguments, escaping and differences between Windows and Unix systems, you can instead create an .env
file and specify environment variables:
ELECTRON_ARGS=["--inspect-brk=9229"]