env-to-script v1.0.2
env-to-script
Getting environment variables in the browser
Why do I need it?
The twelve-factor app stores config in environment variables (env vars). Env vars are easy to change between deploys without changing any code.
Challenge: a web page doesn’t have access to OS variables, so you can’t normally use them.
Solution: generate a file that contains them and include it on the page using <script> tag.
Installation
npm install --save-dev env-to-script
you don't need this package at runtime
Usage
Create
.jsonfile with you env vars, for ex.prod.env.json:{ "ENV_NAME": "prod", "API_BASE_URL": "http://100.200.101.202:8000/api", "WEB_SOCKET_URL": "ws://100.200.101.202:8001", "AWS": { "region": "us-east-1", "ClientId": "xxxxyyyyzzzz" } }Define a new script in the
scriptssection of yourpackage.jsonfile and make sure it will be executed before the app starts:"scripts": { ... "prestart": "node ./node_modules/env-to-script" }Run your
npm startprovidingNODE_ENVenv variable value:NODE_ENV=prod npm startNote 1:
env-to-scriptis looking for${NODE_ENV}.env.jsonfile. Note 2: generatedenv.jsfile looks like this:;(function () { window.ENV = { "ENV_NAME": "prod", "API_BASE_URL": "http://100.200.101.202:8000/api", "WEB_SOCKET_URL": "ws://100.200.101.202:8001", "AWS": { "region": "us-east-1", "ClientId": "xxxxyyyyzzzz" } } })();Include
env.jsfile on the page:index.html:
<script src="env.js"></script>
PFOFIT!!!
Now you're able to use your environment variables in the browser by using ENV global variable:
