# set-node-env

> Set node env from .env and .env.mode

Latest version **1.0.0** (published 2022-03-26) · MIT license · 0 weekly downloads

## Install

```sh
npm install set-node-env
pnpm add set-node-env
yarn add set-node-env
bun add set-node-env
```

Provides the command `set-node-env`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.0 |
| Published | 2022-03-26 |
| First published | 2019-12-03 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 13.9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Maintainers | bytetalk |
| Keywords | set-node-env, .env, .env.development, .env.test, .env.production, .env.mode, process.env, environment, env, node, set, cli |

## Links

- npm: https://www.npmjs.com/package/set-node-env
- Repository: https://github.com/bytetalk/set-node-env
- Homepage: https://github.com/bytetalk/set-node-env#readme
- Issues: https://github.com/bytetalk/set-node-env/issues
- npm.io page: https://npm.io/package/set-node-env

## Alternatives

- [replicas-cli](https://npm.io/package/replicas-cli.md) — 3.0K weekly downloads
- [env-contract](https://npm.io/package/env-contract.md) — 133 weekly downloads
- [@openveo/api](https://npm.io/package/@openveo/api.md) — 61 weekly downloads
- [@ryniaubenpm2/cumque-error-reiciendis](https://npm.io/package/@ryniaubenpm2/cumque-error-reiciendis.md) — 54 weekly downloads
- [ts-global-type-extra](https://npm.io/package/ts-global-type-extra.md) — 11 weekly downloads

## Recent versions

- 1.0.0 (latest) — 2022-03-26
- 0.0.13 — 2020-03-12
- 0.0.12 — 2020-03-12
- 0.0.11 — 2020-03-11
- 0.0.10 — 2020-03-11
- 0.0.9 — 2020-03-11
- 0.0.8 — 2019-12-07
- 0.0.7 — 2019-12-05
- 0.0.6 — 2019-12-04
- 0.0.5 — 2019-12-03
- 0.0.4 — 2019-12-03
- 0.0.3 — 2019-12-03
- 0.0.2 — 2019-12-03
- 0.0.1 — 2019-12-03

## README

# set-node-env

Set node env from a .env and a .env.mode files.

[![Build Status](https://app.travis-ci.com/bytetalk/set-node-env.svg?branch=master)](https://app.travis-ci.com/github/bytetalk/set-node-env)

## Installation

```shell
npm install --save-dev set-node-env
// or
yarn add --dev set-node-env
```

## Usage Demo

##### 1. Create corresponding files under your project root directory as below

.env file

```
APP_NAME=set-node-env-demo
```

.env.development file

```
PORT=7777
```

.env.test file

```
PORT=8888
```

.env.production file

```
PORT=9999
```

app.js

```javascript
console.log(process.env.APP_NAME)
console.log(process.env.PORT)
```

##### 2. Run set-node-env command

package.json

```json
"scripts": {
    "test": "set-node-env --mode=production --debug=true node app.js"
}
```

```
$ npm test
$ set-node-env-demo
$ 9999
```

or

```shell
$ ./node_modules/.bin/set-node-env --mode=production --debug=true node app.js
$ set-node-env-demo
$ 9999
```

Both .env and .env.prodocution will take affect.

##### 3. (Optional and Alternative) Run below code instead of step above under your project root directory

```shell
$ node -r ./node_modules/set-node-env/preload.js app.js --env-mode=production --env-debug=true // node -r preload the specified module at startup
$ set-node-env-demo
$ 9999
```

## Command Line Interface

> Make sure set-env-node or node -r ./node_modules/set-node-env/preload.js command be executed under your project root directory since .env and .env.mode files were created there, that means set-node-env module code loads .env and .env.mode files under you current working directory.

> 1. A .env file will always be tried to load even if it does not exist. A .env.mode file has a higher priority.
> 2. If process.env has the key defined in .env or .env.mode files, new value will be ignored.
> 3. If mode exists and process.env.NODE_ENV is undefined, set process.env.NODE_ENV=mode.

```shell
set-node-env --mode=production --debug=true node app.js

Options
  --mode             (optional) specify mode and must create a corresponding .env.mode file first
  --debug            (optional) show debug info or not, no specified means false, --debug means true
```

```shell
node -r ./node_modules/set-node-env/preload.js app.js --env-mode=production --env-debug=true

Options
  --env-mode         same as --mode
  --env-debug        same as --debug
```

## More Examples

package.json

```json
"scripts": {
    "node": "set-node-env --mode=production --debug=true node app.js",
    "electron": "set-node-env --mode=production --debug=true electron .", // install electron first
    "npx": "set-node-env --mode=production --debug=true npx electron .", // npm >= 5.2
    "npm": "set-node-env --mode=production --debug=true npm env"
}
```

## LICENSE

MIT

---
_Source: https://npm.io/package/set-node-env · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
