https://github.com/iswilljr/config-env-file
A command line to generate a .env.local based on a Config
https://github.com/iswilljr/config-env-file
cli command-line command-line-tool config configuration dotenv env environment-variables nodejs
Last synced: 3 months ago
JSON representation
A command line to generate a .env.local based on a Config
- Host: GitHub
- URL: https://github.com/iswilljr/config-env-file
- Owner: iswilljr
- Created: 2022-02-27T21:28:08.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-07-18T17:31:16.000Z (almost 2 years ago)
- Last Synced: 2026-03-27T19:51:34.339Z (3 months ago)
- Topics: cli, command-line, command-line-tool, config, configuration, dotenv, env, environment-variables, nodejs
- Language: JavaScript
- Homepage: https://xlug.vercel.app/cef
- Size: 222 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# CONFIG ENV FILE
> A command line to generate a `.env` file based on a Config
## Why?
If you have a config in a json format and you don't want to expose your config to the public, you can pass it to a `.env` file but make a `.env` file by hand with the json file may take a while. This command will generate a `.env` file for you.
## Install
```bash
# npm
npm install -g config-env-file
# npx
npx config-env-file [config-file] [options]
# yarn
yarn global add config-env-file
```
## Usage
```bash
cef ./config.json
# config.json: { "api": 1, "key": 2 }
# output:
# const config = {
# api: process.env.API,
# key: process.env.KEY
# }
# .env.local:
# API="1"
# KEY="2"
```
### Example with a firebase project
When you use firebase in your app, you might not want to expose the firebase config. Pass the config to an `.env` file may take a while doing it by hand. This is a simple example to generate a `.env` file from a firebase config.
```bash
touch firebase.config.json
# copy the firebase config to firebase.config.json
# firebase.config.json:
# { "apiKey": "example", "authDomain": "example.firebaseapp.com", ... }
cef firebase.config.json
# .env.local:
# API_KEY="example"
# AUTH_DOMAIN="example.firebaseapp.com"
# ...
# output:
# const config = {
# apiKey: process.env.API_KEY,
# authDomain: process.env.AUTH_DOMAIN
# ...
# }
```
## Options
### Prefix
add prefix to variables name. default `undefined`
```bash
cef ./config.json --prefix public
# config.json: { "apiUrl": "https://..." }
# output:
# const config = {
# apiUrl: process.env.PUBLIC_API_URL,
# }
# .env.local:
# PUBLIC_API_URL="https://..."
```
### Include Objects Values
whether to include object values or not. default `false`.
```bash
# config: { "api": 6, "client": { "id": 1, "secret": 6 } }
cef ./config.json
# .env.local:
# API="6"
cef ./config.json --include-objects
# .env.local:
# API="6"
# CLIENT="{"id":1,"secret":6}"
```
### Env
how to access variables. choices `"process"`, `"import"`. default `"process"`.
```bash
cef ./config.json --env import
# output:
# const config = {
# api: import.meta.env.API,
# key: import.meta.env.KEY
# }
```
### Other options
- `destination`: destination path to env file. default `"."`.
- `extension`: extension to env file name. default `"local"`.
- `single-quotes`: use single quotes in env values. default `false`.
- `no-quotes`: don't add quotes to env values. default `false`.
- `silent`: skip console logs. default `false`.
Run `cef --help` for more information.