config-importer
I've made this module in order to allow developers to create applications with the different work stages, such as production, testing, development, etc.
This module allows you to have a default configuration file and change its specific values according to your NODE_ENV variable.
How to use
To use this module with the default values, you just need to get the configuration like this:
const config = require('config-importer')()
If you want to change the options, you need to add options as an argument:
const options = {
path: "configPath"
}
const config = require('config-importer')(options)
Options
You can leave the options empty. The default values are:
{
"path": "config",
"default": "default",
"debug": false
}
path: represents the directory where your configuration files are stored in relation to your project root directory.default: represents the default configuration file name, without the.jsonextension.debug: makes this module output debug log (i.e. config directory, thrown exceptions).
Example
In this scenario, you have your default configuration in config/default.json and you are running your application with NODE_ENV=dev npm start.
This module overwrites the values from default.json with the ones set on dev.json, as shown:
default.json
{
"title": "Application title",
"mongodb": {
"uri": "https://productionhost:9999/db",
"username": "username",
"password": "password"
}
}
dev.json
{
"mongodb": {
"uri": "https://devhost:9999/db",
"extra": "param"
}
}
Then, the configuration on your application should be:
{
"title": "Application title",
"mongodb": {
"uri": "https://devhost:9999/db",
"username": "username",
"password": "password",
"extra": "param"
}
}