12factor-dotenv

0.1.6 • Public • Published

12factor-dotenv

npm version Build Status

NPM downloads

Automagically Load Dotenv Files (.env)

This module looks for .env files loads them with node-env-file and returns a 12factor-config

Features

  • relative to parent module
    • note: Parent module is one that requires 12factor-dotenv
  • loads .env files in an ascending relative path:
    • ./
    • ../
    • ../../

Install

npm install 12factor-dotenv --save

Config schema

This module uses 12factor-config to manage a config schema, for configuration support, Read More Here

Usage

in a single config file (obey 12factor and unify your config location), do something like:

// in ./app/lib/config.js

var config = require('12factor-dotenv');
var schema = {
    DEBUG: {
        env: 'DEBUG', // the environment export var to read
        type: 'boolean', // config var type (string, integer, boolean - maybe more see 12factor-config)
        default: false
    },
    PORT: {
        env: 'PORT',
        type: 'integer',
        default: 4000
    },
    MY_CUSTOM_VAR: {
        env: 'MY_LOCAL_ENVIRONMENT_EXPORT_VAR',
        type: 'string'
    },
    NODE_ENV: {
        env: 'NODE_ENV',
        type: 'string',
        default: 'development'
    }
};

var cfg = config(schema, { debug: true, env: { overwrite: true } });

## See https://www.npmjs.com/package/node-env-file#api for more details on `env` options

console.log('info: -- PORT is', cfg.PORT);
console.log('info: -- NODE_ENV is', cfg.NODE_ENV);

console.log('debug: -- ENV Debug is', process.env.DEBUG);
console.log('debug: -- ENV Port is', process.env.PORT);

console.log('info: < Configured.');

module.exports = exports = cfg;

now var cfg = require('./path/to/app/lib/config.js'); wherever you want your unified config - and keep .env(s) updated per environment.

Note!

This package also loads native process.env variables, when parsing .env files

Package Sidebar

Install

npm i 12factor-dotenv

Weekly Downloads

14

Version

0.1.6

License

none

Last publish

Collaborators

  • electblake