node package manager
It’s your turn. Help us improve JavaScript. Take the 2017 JavaScript Ecosystem Survey »


node-env-configs    Build Status


Loads configuration files based on the NODE_ENV.


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
  // ES6 way 
  import { port } from 'node-env-configs'
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


Description: This specifies node-env-configs where the config files are saved in the project.

Default: <projectRoot>/configs/


$ ENV_CONFIGS_DIR=app/configs node main.js # now node-env-configs will look for configs from the specified path

Description: This specifies node-env-configs to do or do not show warnings and errors on the console.

Default: false


$ 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.


The MIT License (MIT)

Copyright (c) 2016 Pranesh Ravi

Made with ♥ by Pranesh Ravi