node package manager

node-env-configs

node-env-configs    Build Status

NPM

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


Made with ♥ by Pranesh Ravi