Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A npm package for setting environment variables to use in web-browsers.

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 log
Octocat-spinner-32 test
Octocat-spinner-32 webtest
Octocat-spinner-32 .gitignore
Octocat-spinner-32 .jshintrc
Octocat-spinner-32 .travis.yml
Octocat-spinner-32 Gruntfile.coffee
Octocat-spinner-32 README.md
Octocat-spinner-32 package.json
Octocat-spinner-32 testem.json
Octocat-spinner-32 web-environments.js
Octocat-spinner-32 web-environments.min.js
README.md

npm-web-environments Build Status

A npm package for setting environment variables to use in web-browsers.

Download

Or, if you can use node.js:

$ npm install web-environments

Supported browsers/node.js

  • IE10, IE9, IE8, IE7
  • Chrome
  • Firefox
  • Safari
  • Mobile Safari
  • PhantomJS
  • node.js >= 0.11.0

License

Public Domain

Usage

// If you want to use by node.js
//var webenv = require("web-environments");

// Set environments
webenv.set({
  env1: 123,
  env2: "hogehoge",
  env3: true,
  env4: {
    x: 1,
    y: 2
  }
});

// Overwrite environments
webenv.set("env2", "fugafuga");
webenv.set("env4.y", 22);

// Extend environments by object
webenv.extend({
  env3: false,
  env5: "Append value"
});

// Get environments
console.log(webenv.get("env1"));   // -> 123
console.log(webenv.get("env2"));   // -> "hogehoge"
console.log(webenv.get("env3"));   // -> false
console.log(webenv.get("env4"));   // -> {x: 1, y: 22}
console.log(webenv.get("env4.x")); // -> 1
console.log(webenv.get("env4.y")); // -> 22
console.log(webenv.get("env5"));   // -> "Append value"
console.log(webenv.get());         // -> All environments

File Structure Sample

index.html:

..

<head>
  <script src="web-environments.js"></script>
  <script src="base-environments.js"></script>
  <script src="production-environments.js"></script>
</head>

..

base-environments.js:

webenv.set({
  debug: true,
  baseUrl: "http://localhost:8000",
  getApiUrl: function(){
    return webenv.get("baseUrl") + "/api";
  },
  someSetting1: true,
  someSetting2: false
});

production-environments.js:

webenv.extend({
  debug: false,
  baseUrl: "http://your-production-site.com/",
  someSetting2: true
});

You can overwrite values optionally.

API Reference

  • data-path
    • This is a path for targeting data that is represented by "." separated string.
    • e.g. "a.b.c" means {a: {b: c: targetValue}}.
  • webenv.set(dataPath, data)
  • webenv.set(data)
  • webenv.extend(dataPath, data)
  • webenv.extend(data)
  • webenv.get(dataPath?)
  • webenv.get(dataPath, defaultValue)

Development

Dependencies

  • node.js >= 0.11.0, e.g. brew install node
  • PhantomJS, e.g. brew install phantomjs
$ npm install -g grunt-cli testem

Deploy

$ git clone git@github.com:kjirou/npm-web-environments.git
$ cd npm-web-environments
$ npm install
$ grunt

Utils commands

  • grunt jshint validates codes by JSHint.
  • grunt release generates JavaScript files for release.

Testing

  • Open test/index.html
  • Execute testem or testem server, after that, open http://localhost:7357/
  • grunt test tests by node.js.
  • grunt webtest is CI test by PhantomJS only.
  • grunt testem:xb is CI test by PhantomJS, Chrome, Firefox and Safari.

Related Links

Something went wrong with that request. Please try again.