config.json

nconf wrapper that simplifies work with environment specific configuration files.

Usage no npm install needed!

<script type="module">
  import configJson from 'https://cdn.skypack.dev/config.json';
</script>

README

config.json

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.

Installation

npm install config.json

Usage

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": "www.example.com",
  "mongodb": {
    "host": "localhost",
    "port": 27017
  }
}

Create environment specific configuration file

vi sample.development.json
{
  "domain": "dev.example.com"
}

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);
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

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.

License

Released under the MIT license.