node package manager

Introducing npm Enterprise add-ons. Integrate third-party dev tools into npm…

config.json

nconf wrapper that simplifies work with environment specific configuration files.

config.json

nconf wrapper that simplifies work with environment specific configuration files.

config.json is easy to use; it:

  • loads the default configuration file;
  • loads environment specific configuration file and overrides defaults;

and then:

  • uses environment variables;
  • and command-line arguments to override data from configuration files.
npm install config.json

The top-level of config.json is a function that loads configuration file with the given filepath.

vi sample.json
{
  "domain": "www.example.com",
  "mongodb": {
    "host": "localhost",
    "port": 27017
  }
}
vi sample.development.json
{
  "domain": "dev.example.com"
}

Note: Environment specific configuration files should be in the same directory as the default one.

vi sample.js
var config = require('config.json')('./sample.json');
 
console.log("domain:", config.domain);
console.log("mongodb:\n",
  "host:", config.mongodb.host, "\n",
  "port:", config.mongodb.port);

Run the above script:

NODE_ENV=development node ./sample.js --mongodb:host "dharma.mongohq.com" --mongodb:port 10065

The output will be:

domain: dev.example.com
mongodb:
 host: dharma.mongohq.com
 port: 10065

Environment can be set by passing env argument:

var developmentConfig = require('config.json')('./sample.json', 'development');
var productionConfig = require('config.json')('./sample.json', 'production');

filepath can be empty if your configuration file is in the current working directory of the process and is called config.json.

Released under the MIT license.