Add support for processing .jsenv files to Brunch (http://brunch.io). Read environment values to compile to JS.
Clone or download
Pull request Compare This branch is 5 commits ahead, 22 commits behind rcs:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
test
.gitignore
.npmignore
README.md
package.json
setup.js

README.md

jsenv-brunch

Adds .jsenv / .coffeeenv support to brunch.

.jsenv / .coffeeenv files are simple files with JSON structure that will have any matching keys replaced from environment variables.

.jsenv / .coffeeenv files are either JSON formatted data or files specifying a javascript function that will take an env object as an argument and return an object.

Example

JSON

config.jsenv:

{
  API_HOST: "https://api.apihost.com"
}

when run with

API_HOST="https://dev.apihost.com" brunch build

will compile to

exports.module = {
  "API_HOST": "https://dev.apihost.com"
}

Javascript

config.jsenv:

function(env) {
  if( parseInt(env.EVILNESS) > 5 ) {
    return { "Evil": "very evil" };
  }
  else {
    return { "Evil": "only slightly evil" }
  }
}
EVILNESS=9001 brunch b

gives us

exports.module = {"Evil": "very evil"}

while

EVILNESS=5 brunch b

gives us

  module.exports = {"Evil":"only slightly evil"}

Any of which can now be used in "require('config')"

CoffeeScript

config.coffeeenv:

(env) ->
  if parseInt(env.EVILNESS) > 5
    { Evil: "very evil" }
  else
    { Evil: "only slightly evil" }

Usage

Add "jsenv-brunch": "x.y.z" to package.json of your brunch app.

Pick a plugin version that corresponds to your minor (y) brunch version.

If you want to use git version of plugin, add "jsenv-brunch": "git+https://github.com/rcs/jsenv-brunch.git".