node-env-configs v1.1.2
node-env-configs 
Loads configuration files based on the NODE_ENV.
Installation
npm i node-env-configs --saveSimple Usage
Run the following commands at the root of your project
Adding default config file.
node-env-configs by default consumes this file and export the content as the default config when NODE_ENV is not set.
$ mkdir configs
$ vim configs/default.js # or vim config/default.json// default.js
module.exports = {
protocol: 'http://',
host: 'localhost',
port: 8090,
}Adding production config file.
node-env-configs will consume production.js and do a shallow merge over the default config.
$ vim configs/production.js// production.js
module.exports = {
port: 8000
}Using in your module
Now, create main.js and add the following code.
// ES5 way
const config = require('node-env-configs').default
console.log(config.port)
// ES6 way
import { port } from 'node-env-configs'
console.log(port)Making it work
By default, when you run main.js, node-env-configs will check for NODE_ENV and look for the filename matching the NODE_ENV. If NODE_ENV is undefined it will pick default.js | default.json from the root/configs/ and return it as the default config. So, here
$ node main.js
> 8090 #logs 'port' from the 'default.js'If your set the NODE_ENV=production,
$ NODE_ENV=production node main.js
> 8000 #logs 'port' from the 'production.js'Environment Variables
ENV_CONFIGS_DIR
Description: This specifies node-env-configs where the config files are saved in the project.
Default: <projectRoot>/configs/
Usage:
$ ENV_CONFIGS_DIR=app/configs node main.js # now node-env-configs will look for configs from the specified pathSUPPRESS_ENV_CONFIGS_WARNINGS
Description: This specifies node-env-configs to do or do not show warnings and errors on the console.
Default: false
Usage:
$ SUPPRESS_ENV_CONFIGS_WARNINGS=true node main.js # this will suppress all the warnings and the errorsSupported File Formats
node-env-configs supports the following file formats
.js.json
You can have both the formats in the same project or the config directory.
License
The MIT License (MIT)
Copyright (c) 2016 Pranesh Ravi
