node-env-configs
v1.1.2
Published
Loads configs based on your environment
Downloads
6
Maintainers
Readme
node-env-configs
Loads configuration files based on the NODE_ENV
.
Installation
npm i node-env-configs --save
Simple 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 path
SUPPRESS_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 errors
Supported 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