runtime-env-cli is an NPM package that helps manage environment variables in web applications. It allows environment-agnostic build for frameworks like create-react-app and inject environment variables as window.env in html files during server startup.
-
Install
runtime-env-clias development dependency.pnpm:
pnpm i -D runtime-env-cli
npm:
npm i -D runtime-env-cli
Yarn:
yarn add -D runtime-env-cli
-
Import
runtime-env-cliin top-level javascript/typescript file for aliasingprocess.envaswindows.envin development mode.import "runtime-env-cli";
It also provides type-safety for
windows.env.Note: You can make it further type-safe by extending interfaces
ProcessEnvorWindowEnv.Use environment variables from
window.env:window.env.SAMPLE_ENV;
-
Generate static files for your application.
npm run build
-
Install
runtime-env-cliin hosting environment (if using docker, do this in the last stage).npm i -g runtime-env-cli
-
Run the cli to inject env into html files before serving files (in docker, do this in entrypoint following by serving files, refer example).
runtime-env [options]
Note: CLI uses
process.envto get environment while injecting. Any matching environment variables already configured in shell will be read. To use .env files, first load it before running this (refer dotenv-cli).
- -v, --version: output the version number.
- -p, --path [paths...] (optional): glob patterns to match path of html files (default: ["./build/**/*.html"]).
- -m, --match <regex>: regular expression to match environment variable names to be injected.
- -h, --help: display help for command.
runtime-env --path "./**/*.html" --match "^APP_ENV_"This will inject all environment variables prefixed with APP_ENV_ as window.env object into all html files under working directory.