localenvify
defunctzombie/localenv and hughsk/envify combined for substack/node-browserify modules.
Yes, it's a browserify transform.
“12factor config applied to frontend builds.”
Installation
npm install localenvify --save
TL;DR; example
Let's say you have a frontend index.js
:
var request = ;var api = processenvAPI_ENDPOINT; // API http endpoint request
And a .env
file sitting in your current working dir.
API_ENDPOINT=http://omg-api.com.dev
Running browserify with the localenvify transform:
browserify -t localenvify index.js# ... # var request = require("superagent"); # var api = "http://omg-api.com.dev"; # ...
Now you don't want to store production environment config files in your repo:
API_ENDPOINT="http://omg-api.com.production" browserify -t localenvify index.js # ... # var request = require("superagent"); # var api = "http://omg-api.com.production"; # ...
Specifying a custom env file
defunctzombie/localenv only loads .env files when NODE_PRODUCTION !== 'production'
.
You can pass transform options to localenvify to load custom .env files.
On the command line:
browserify -t [ localenvify --envfile .env.test ] index.js
In your package.json:
.env files
.env file format is described in defunctzombie/localenv readme.
You should use .env files for developer or test environments, not for production* environments.