Skip to content
nconf wrapper that simplifies work with environment specific configuration files
Find file
New pull request
Latest commit f5f5786 @bulyshko Bump package version


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.

Something went wrong with that request. Please try again.