envrc

0.4.1 • Public • Published

envrc

A simple config loader that melds dotenv, rc, and envs.

Features

  • Loads env files based on common naming conventions and project file structures
  • Reads JSON, INI, and YAML
  • Combines env configs and environment variables
  • Provides property lookup fallbacks and value fallbacks

Order of paths

In the current directory it looks for

  • <cwd>/.env.common
  • <cwd>/.env.default
  • <cwd>/.env.<NODE_ENV>
  • <cwd>/.env.local
  • <cwd>/.env

Then for each of the following directories...

  • <cwd>
  • <cwd>/etc
  • <cwd>/config
  • <cwd>/.config

...it looks for the following files

  • common
  • default
  • <NODE_ENV>

Usage

Loading

// reads and merges files
var conf = require('envrc')();
 
// change your working directory
var conf = require('envrc')('/some/other/dir');
// same as
var conf = require('envrc')({cwd: '/some/other/dir'});
 
// override or add some variables
var conf = require('envrc')({NODE_ENV: 'production', foo: 'bar'});
// same as
var conf = require('envrc')({env: {NODE_ENV: 'production', foo: 'bar'}});
 
// add other lookup directories
var conf = require('envrc')({dirs: ['my-other-environments']});

Values

var conf = require('envrc')({buz: 'cool'});
 
// access values as object properties
conf.buz === 'cool';
 
// or by calling
conf('buz') === 'cool';
 
// when calling, the second argument value acts as a fallback
conf('missing', 'good save') === 'good save';
 
// or pass an array as the first argument to fallback to other properties
conf(['missing', 'buz']) === 'cool';

License

MIT

/envrc/

    Package Sidebar

    Install

    npm i envrc

    Weekly Downloads

    1

    Version

    0.4.1

    License

    MIT

    Last publish

    Collaborators

    • mvanasse
    • mndvns