Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pablopunk/now-env
Use `now.json` environment variables while developing
https://github.com/pablopunk/now-env
Last synced: 24 days ago
JSON representation
Use `now.json` environment variables while developing
- Host: GitHub
- URL: https://github.com/pablopunk/now-env
- Owner: pablopunk
- License: mit
- Created: 2017-12-11T16:08:33.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2017-12-11T16:13:45.000Z (almost 7 years ago)
- Last Synced: 2024-10-03T07:06:34.559Z (about 1 month ago)
- Language: JavaScript
- Homepage: https://npmjs.com/now-env
- Size: 22.5 KB
- Stars: 1
- Watchers: 3
- Forks: 12
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: license.md
Awesome Lists containing this project
README
# now-env
With the help of this package, you can easily set environment variables for the use in development.
If you're already using a `now.json` file or the `now` key in `package.json`, the `env` sub property will be assigned to `process.env` automatically.
In addition, you can store secrets locally, that are specific to the development environment.
## Usage
Firstly, install the package from [npm](https://www.npmjs.com/package/now-env):
```bash
npm install now-env
```As the last step:
```js
require('now-env')
```That's all, you can now check in `process.env` for you environment variables!
> If your application is running inside [Now](https://zeit.co/now) cloud then this module is not going to do anything and let Now set your environment variables.
### Secrets
Most probably you will want to use [secret keys](https://zeit.co/docs/features/env-and-secrets#securing-env-variables-using-secrets) in your `now.json` file. This module allow you to use them too without worries in development.
Create a `now.json` with some secret defined as `@secret-name`, similar to:
```json
{
"env": {
"SECRET": "@my-secret-key",
"ANOTHER_SECRET": "@my-other-secret-key",
"SECRET_FAIL": "@this-is-not-defined"
}
}
```Then create a `now-secrets.json` with the secrets names and values.
```json
{
"@my-secret-key": "keep-it-secret",
"@my-other-secret-key": "keep-it-secret-too"
}
```> This file must be ignored to actually keep them **secret**.
Then when starting your application `now-env` will read the `now.json` and get the values from `now-secrets.json`. If a environment key can't be found in `now-secrets.json` (or the file doesn't exists) then is going to use the secret name as value, that means if `DB_PASS` is `@db_pass` and you don't define it inside `now-secrets.json` then the value will be `@db_pass`.
### Required Variables
Now supports using the `env` key as an array of required values you'll need to provide when deploying. This module also allow you to use them in development.
Create a `now.json` with the array, similar to:
```json
{
"env": [
"REQUIRED_KEY",
"REQUIRED_SECRET"
]
}
```Then create a `now-required.json` with the environment keys and values.
```json
{
"REQUIRED_KEY": "required-value",
"REQUIRED_SECRET": "@required-secret"
}
```> You can also use secrets, for that you will need to create a `now-secrets.json` too.
Then when starting your application `now-env` will read the `now.json` and get the values from `now-required.json` (and `now-secrets.json`). If a environment key can't be found in `now-required.json` then is going to throw a reference error.
## Migrating from `dotenv`
If you're already using the `dotenv` module you can switch to `now-env` easily:
1. Create a `now.json` file with the `env` key with every environment variable
2. Install `now-env`
3. Change `require('dotenv').config()` with `require('now-env').config()`
4. That's all!