node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »



nconf wrapper that simplifies work with environment specific configuration files.

Build Status Dependency Status

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.

Create default configuration file

vi sample.json
  "domain": "",
  "mongodb": {
    "host": "localhost",
    "port": 27017

Create environment specific configuration file

vi sample.development.json
  "domain": ""

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

Test config.json in action

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

Run the above script:

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

The output will be:

 port: 10065

Load configuration for the specific environment

Environment can be set by passing env argument:

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

One more thing...

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.