77 lines
1.9 KiB
Markdown
77 lines
1.9 KiB
Markdown
# dotenv-multi
|
|
|
|
Dotenv-multi is a module that uses [dotenv](https://www.npmjs.com/package/dotenv) and [dotenv-expand](https://www.npmjs.com/package/dotenv-expand) to load files similarly to [Create React App script's](https://create-react-app.dev/docs/adding-custom-environment-variables/#what-other-env-files-can-be-used). It allows the use of NODE_ENV and local specific env files.
|
|
|
|
This is useful because now you can commit your default env files into the repo and still have a sane way to override them locally without having changes in your local git on one .env file.
|
|
|
|
Example root files:
|
|
```
|
|
.env
|
|
.env.development
|
|
.env.development.local (not pushed to git)
|
|
```
|
|
|
|
# Install
|
|
|
|
```
|
|
# with npm
|
|
npm install @ringofstorms/dotenv-multi dotenv dotenv-expand yn
|
|
```
|
|
|
|
# Usage
|
|
|
|
```js
|
|
# js
|
|
const dotenvMulti = require('@ringofstorms/dotenv-multi');
|
|
dotenvMulti.config();
|
|
```
|
|
|
|
```typescript
|
|
# typescript
|
|
import { config } from '@ringofstorms/multi-env';
|
|
config();
|
|
```
|
|
|
|
## Boolean support
|
|
|
|
This package also uses the [yn](https://www.npmjs.com/package/yn) package to convert environment variables into javascript strings that will resolve as true false. (It replaces values like `0`, `no`, `false`, etc into an empty string `""`)
|
|
|
|
```typescript
|
|
config({
|
|
convertToBooleanPredicate: variable => variable.includes("BOOL"),
|
|
/* and or */ convertToBoolean: ["BOOL_VARIABLE_TO_CONVERT"]
|
|
});
|
|
```
|
|
|
|
## Debug
|
|
|
|
You can enable debug logs which will also enable debug mode on `dotenv` calls to see what is going on when a variable does not resolve how you expect.
|
|
|
|
```typescript
|
|
config({
|
|
debug: true,
|
|
});
|
|
```
|
|
|
|
# Configuring .gitignore
|
|
|
|
You should add the following to your `.gitignore` file:
|
|
```
|
|
# .env local files
|
|
.env.development.local
|
|
.env.local
|
|
.env.production.local
|
|
.env.test.local
|
|
```
|
|
|
|
# Contributing
|
|
|
|
### building
|
|
|
|
`npm run build`
|
|
|
|
### publishing
|
|
|
|
if not already done `npm login`
|
|
|
|
`npm publish --access public`
|