Skip to content
Parse and load environment files (containing ENV variable exports) into Node.js environment, i.e. `process.env`.
JavaScript Makefile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

README.md

NODE-ENV-FILE Build Status

Parse and load environment files (containing ENV variable exports) into Node.js environment, i.e. process.env.

Example

.env

  # some env variables

  FOO=foo1
  BAR=bar1
  BAZ=1
  QUX=
  # QUUX=

.env2

  # some env variables using exports syntax

  exports FOO=foo2
  exports BAR=bar2
  exports BAZ=2
  exports QUX=
  # exports QUUX=

index.js

  var assert = require('assert');
  var env = require('node-env-file');

  process.env.FOO = "defaultfoo";

  // Load any undefined ENV variables from a specified file.
  env(__dirname + '/.env');
  assert.equal(process.env.FOO, "defaultfoo");
  assert.equal(process.env.BAR, "bar1");
  assert.equal(process.env.BAZ, "1");
  assert.equal(process.env.QUX, "");
  assert.equal(process.env.QUUX, undefined);

  // Load another ENV file - and overwrite any defined ENV variables.
  env(__dirname + '/.env2', {overwrite: true});
  assert.equal(process.env.FOO, "foo2");
  assert.equal(process.env.BAR, "bar2");
  assert.equal(process.env.BAZ, "2");
  assert.equal(process.env.QUX, "");
  assert.equal(process.env.QUUX, undefined);
  
  // Load any undefined ENV variables from a specified file, but don't crash if the file doesn't exist
  // Usefull for testing env vars in development, but using "real" env vars in production
  envfile(__dirname + '/.env', {raise: false});
  

API

  • (filepath)

    env('./path/to/.env');
  • (filepath, options)

    env('./path/to/.env', {verbose: true, overwrite: true, raise: false, logger: console});

Installation

  $ npm install node-env-file

Test

Local tests:

  $ make test

Examples

Local examples:

  $ make example

Related Libraries

License

Released under the MIT license.

Copyright (c) Jonas Grimfelt

Bitdeli Badge

You can’t perform that action at this time.