Home

Awesome

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 = require('superagent');
var api = process.env.API_ENDPOINT; // API http endpoint 
request
  .get(api)
  .end(function apiCalled(res) {
    console.log(res.status);
  })

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_ENV !== '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:

{
  "browserify": {
    "transform": [
      ["localenvify", {"envfile": ".env.test"}]
    ]
  }
}

.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.