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.