build status code coverage code style styled with prettier made with lass license

Parse dotenv files for Boolean, Array, and Number variable types, built for Lad and Forward Email.

Table of Contents



npm install dotenv-parse-variables


yarn add dotenv-parse-variables


Imagine you have a configuration file at .env with the following:

# note how we use an asterisk here to turn off the parsing for this variable
# note how we use an asterisk in the array to turn off parsing for an array key value
# note a string between bacticks won't be parsed

After using this plugin, the environment variables are parsed to their proper types.

To test it out, simply log the returned object in your console:


And you'll see that it outputs the properly parsed variable types:

  // String
  FOO: 'bar',
  // Number
  BAZ: 2,
  // Boolean
  BEEP: false,
  // Array
  BOOP: [ 'some', 'thing', 'that', 'goes', 'wow' ],
  // NOTE: this was not parsed due to the * asterisk override above
  BLEEP: 'false',
  // NOTE: only the "true*" above was opted out through the use of an asterisk
  PING: [ 'ping', 'true', 2, 100 ],
  // NOTE: this was not parsed because the string was between bacticks
  PONG: 'some,thing,that,goes,wow'

If your configuration line ends in * it will not be parsed by this package, which allows you to keep values as the String variable type if needed. Also when you encapsulate a value between bacticks e.g. `value`, the value won't be parsed and it will return as a String variable. This can be used in situations where you for example have a , inside your string and it should not be parsed as an array.


This package works well with dotenv, however we also recommend to use dotenv-extended and dotenv-expand as we do in Lad. You could also simply just use Lad or @ladjs/env specifically.

Example with dotenv:

const dotenv = require('dotenv');
const dotenvParseVariables = require('dotenv-parse-variables');

let env = dotenv.config({})
if (env.error) throw env.error;
env = dotenvParseVariables(env.parsed);


Example with dotenv-extended (which supports a well-defined .env file) and dotenv-expand (which supports variable interpolation):

const dotenvExtended = require('dotenv-extended');
const dotenvMustache = require('dotenv-mustache');
const dotenvParseVariables = require('dotenv-parse-variables');

let env = dotenvExtended.load({
  silent: false,
  errorOnMissing: true,
  errorOnExtra: true
env = dotenvMustache(env);
env = dotenvParseVariables(env);


If you don't want to use this package to parse variable types, you could also use getenv (but it requires more work).


A second argument can be provided to dotenvParseVariables with an object of options.

The defaults are listed below:

  • assignToProcessEnv (Boolean) - defaults to true, whether or not to assign the parsed values to process.env
  • overrideProcessEnv (Boolean) - defaults to false, whether or not to override existing values in process.env
  • ignoreFunctions (Boolean) - defaults to true, whether or not to ignore functions in the parsed values returned


Name Website
Nick Baugh


MIT © Nick Baugh

Dotenv Parse Variables

Parse dotenv files for Boolean, Array, and Number variable types, built for Lad

Dotenv Parse Variables Info

⭐ Stars 93
🔗 Homepage
🔗 Source Code
🕒 Last Update a year ago
🕒 Created 5 years ago
🐞 Open Issues 0
➗ Star-Issue Ratio Infinity
😎 Author niftylettuce