dotenv-haphap

dotenv with multiple dotenv file support

Usage no npm install needed!

<script type="module">
  import dotenvHaphap from 'https://cdn.skypack.dev/dotenv-haphap';
</script>

README

dotenv-haphap

dotenv

Inspired by dotenv, but allows loading multiple dotenv files.

Instead of a path for a single dotenv file, you can call config with a coma separated list of paths.

Install

npm install dotenv-haphap

Usage

As early as possible in your application, require and configure dotenv-haphap.

require('dotenv-haphap').config('.env', 'confidential.env')

It will never modify any environment variables that have already been set. Variables defined in later .env files will overwrite values in previous ones.

For example, if you have HAPHAP=11 in your .env file, and HAPHAP=14 in confidential.env, then process.env.HAPHAP will be 14 when using the require from above.

Preload

$ node -r dotenv-haphap/config your_script.js dotenv_paths=.env,confidential.env

or

$ DOTENV_PATHS=.env,confidnetial.env node -r dotenv-haphap/config your_script.js

FAQ

Should I commit my .env file?

You should not commit them if you have sensitive information in it (such as database passwords or API keys).

We found it easier though to commit parts of the .env file which contain local development specific values (like connection strings to local docker images), but not deploying them to production.

Should I have multiple .env files?

Generally you should not have a different .env file for each environment (like one for staging and for prod), but for local development it might be helpful to have a .env file for test execution and one for starting the app locally.

Also, if there are parts of the .env file you do not wish to commit, you could separate them into a confidential.env file, which you put in gitignore and let each developer set it up locally.