Our projects are litered with environment variables. If we're doing things correctly, we're using a .env
file and not checking it into source control. We're probably also using something along the lines of .env.example
to track what variables should be set in our .env
.
This may be fine when working solo or on a small team, but with larger projects it's easy to miss changes to .env.example
. Furthermore, undefined environment variables don't always present themselves in the most obvious of ways.
require-env-var
is a small library that helps with that. It allows you to specify which environment variables are required, and if they don't exist you get an error message telling you what key is missing. Additionally, it provides support for specifying multiple keys (first one wins) as well as a fallback in case no keys are found.
Install using yarn
:
yarn add require-env-var
Install using npm
:
npm install --save require-env-var
require-env-var
exposes a single function:
const requireEnvVar = require('require-env-var');
const port = requireEnvVar('PORT');
You can also use ES6-style imports if you'd like:
import requireEnvVar from 'require-env-var';
const clientId = requireEnvVar('CLIENT_ID');
You can provide an array of keys and require-env-var
will return the first one that is set:
const port = requireEnvVar(['SERVER_PORT', 'PORT']);
If none of the keys provided exist, require-env-var
will throw an error:
Required environment variable [SERVER_PORT or PORT] is not set!
However, if you specify a fallback, that will be returned instead:
const port = requireEnvVar(['SERVER_PORT', 'PORT'], '8080');
console.log(port) // Suprise, it's `8080`!
MIT