localenvify

defunctzombie/localenv and hughsk/envify combined as a browserify transform

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
localenvify
1401.0.19 years ago9 years agoMinified + gzip package size for localenvify in KB

Readme

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_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:
{
  "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.