Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bevry/envfile

Parse and write environment files with Node.js
https://github.com/bevry/envfile

data-format dotenv env envfile environment-variables executable nodejs

Last synced: 3 months ago
JSON representation

Parse and write environment files with Node.js

Awesome Lists containing this project

README

        

# envfile

Status of the GitHub Workflow: bevry
NPM version
NPM downloads


GitHub Sponsors donate button
ThanksDev donate button
Patreon donate button
Liberapay donate button
Buy Me A Coffee donate button
Open Collective donate button
crypto donate button
PayPal donate button


Discord server badge
Twitch community badge

Parse and stringify the environment configuration files and format, also known as .env files and dotenv files

## What are environment configuration files?

They are files use to configure environments by applications and servers that support them. Generally they look like this:

```
a=1
b:2
c = 3
d : 4
```

They are commonly also called envfiles, .env files, and dotenv files.

## Usage

[Complete API Documentation.](http://master.envfile.bevry.surge.sh/docs/)

### Via the Command Line

Requires a global installation of envfile: `npm install -g envfile`

```bash
# envfile to JSON
echo -e "a=1\nb:2" | envfile env2json > config.json

# JSON to envfile
echo '{"a":1,"b":2}' | envfile json2env > config.env
```

### Via [Node.js](https://nodejs.org/en/)

```javascript
// Include envfile
const { parse, stringify } = require('envfile')

// Parse an envfile string
console.log(parse('a=1\nb:2'))

// Stringify a javascript object to an envfile string
console.log(stringify({ a: 1, b: 2 }))
```

## Install

### [npm](https://npmjs.com "npm is a package manager for javascript")

#### Install Globally

- Install: `npm install --global envfile`
- Executable: `envfile`

#### Install Locally

- Install: `npm install --save envfile`
- Executable: `npx envfile`
- Import: `import * as pkg from ('envfile')`
- Require: `const pkg = require('envfile')`

### [Deno](https://deno.land "Deno is a secure runtime for JavaScript and TypeScript, it is an alternative for Node.js")

``` typescript
import * as pkg from 'https://unpkg.com/envfile@^7.1.0/edition-deno/index.ts'
```
### [Skypack](https://www.skypack.dev "Skypack is a JavaScript Delivery Network for modern web apps")

``` html

import * as pkg from '//cdn.skypack.dev/envfile@^7.1.0'

```
### [unpkg](https://unpkg.com "unpkg is a fast, global content delivery network for everything on npm")

``` html

import * as pkg from '//unpkg.com/envfile@^7.1.0'

```
### [jspm](https://jspm.io "Native ES Modules CDN")

``` html

import * as pkg from '//dev.jspm.io/[email protected]'

```
### [Editions](https://editions.bevry.me "Editions are the best way to produce and consume packages you care about.")

This package is published with the following editions:
- `envfile/source/index.ts` is [TypeScript](https://www.typescriptlang.org/ "TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.") source code with [Import](https://babeljs.io/docs/learn-es2015/#modules "ECMAScript Modules") for modules
- `envfile/edition-browsers/index.js` is [TypeScript](https://www.typescriptlang.org/ "TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.") compiled against [ES2022](https://en.wikipedia.org/wiki/ES2022 "ECMAScript 2022") for web browsers with [Import](https://babeljs.io/docs/learn-es2015/#modules "ECMAScript Modules") for modules
- `envfile` aliases `envfile/edition-es2022/index.js`
- `envfile/edition-es2022/index.js` is [TypeScript](https://www.typescriptlang.org/ "TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.") compiled against [ES2022](https://en.wikipedia.org/wiki/ES2022 "ECMAScript 2022") for [Node.js](https://nodejs.org "Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine") 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with [Require](https://nodejs.org/dist/latest-v5.x/docs/api/modules.html "Node/CJS Modules") for modules
- `envfile/edition-es2022-esm/index.js` is [TypeScript](https://www.typescriptlang.org/ "TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.") compiled against [ES2022](https://en.wikipedia.org/wiki/ES2022 "ECMAScript 2022") for [Node.js](https://nodejs.org "Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine") 12 || 14 || 16 || 18 || 20 || 21 with [Import](https://babeljs.io/docs/learn-es2015/#modules "ECMAScript Modules") for modules
- `envfile/edition-types/index.d.ts` is [TypeScript](https://www.typescriptlang.org/ "TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.") compiled Types with [Import](https://babeljs.io/docs/learn-es2015/#modules "ECMAScript Modules") for modules
- `envfile/edition-deno/index.ts` is [TypeScript](https://www.typescriptlang.org/ "TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.") source code made to be compatible with [Deno](https://deno.land "Deno is a secure runtime for JavaScript and TypeScript, it is an alternative to Node.js")

## History

[Discover the release history by heading on over to the `HISTORY.md` file.](https://github.com/bevry/envfile/blob/HEAD/HISTORY.md#files)

## Backers

### Code

[Discover how to contribute via the `CONTRIBUTING.md` file.](https://github.com/bevry/envfile/blob/HEAD/CONTRIBUTING.md#files)

#### Authors

- 2013+ [Benjamin Lupton](https://balupton.com) — Accelerating collaborative wisdom.

#### Maintainers

- [Benjamin Lupton](https://balupton.com) — Accelerating collaborative wisdom.

#### Contributors

- [Adam Langbert](https://github.com/adamhl8) — [view contributions](https://github.com/bevry/envfile/commits?author=adamhl8 "View the GitHub contributions of Adam Langbert on repository bevry/envfile")
- [Andy Edwards](https://github.com/andyedwardsibm) — [view contributions](https://github.com/bevry/envfile/commits?author=andyedwardsibm "View the GitHub contributions of Andy Edwards on repository bevry/envfile")
- [andyedwardsdfdl](https://github.com/andyedwardsdfdl) — [view contributions](https://github.com/bevry/envfile/commits?author=andyedwardsdfdl "View the GitHub contributions of andyedwardsdfdl on repository bevry/envfile")
- [Benjamin Lupton](https://github.com/balupton) — [view contributions](https://github.com/bevry/envfile/commits?author=balupton "View the GitHub contributions of Benjamin Lupton on repository bevry/envfile")
- [Kevin Carrabine](https://github.com/kcarra) — [view contributions](https://github.com/bevry/envfile/commits?author=kcarra "View the GitHub contributions of Kevin Carrabine on repository bevry/envfile")

### Finances

GitHub Sponsors donate button
ThanksDev donate button
Patreon donate button
Liberapay donate button
Buy Me A Coffee donate button
Open Collective donate button
crypto donate button
PayPal donate button

#### Sponsors

- [Andrew Nesbitt](https://nesbitt.io) — Software engineer and researcher
- [Balsa](https://balsa.com) — We're Balsa, and we're building tools for builders.
- [Codecov](https://codecov.io) — Empower developers with tools to improve code quality and testing.
- [Poonacha Medappa](https://poonachamedappa.com)
- [Rob Morris](https://github.com/Rob-Morris)
- [Sentry](https://sentry.io) — Real-time crash reporting for your web apps, mobile apps, and games.
- [Syntax](https://syntax.fm) — Syntax Podcast

#### Donors

- [Andrew Nesbitt](https://nesbitt.io)
- [Armen Mkrtchian](https://mogoni.dev)
- [Balsa](https://balsa.com)
- [Chad](https://opencollective.com/chad8)
- [Codecov](https://codecov.io)
- [dr.dimitru](https://veliovgroup.com)
- [Elliott Ditman](https://elliottditman.com)
- [entroniq](https://gitlab.com/entroniq)
- [GitHub](https://github.com/about)
- [Hunter Beast](https://cryptoquick.com)
- [Jean-Luc Geering](https://github.com/jlgeering)
- [Michael Duane Mooring](https://mdm.cc)
- [Michael Harry Scepaniak](https://michaelscepaniak.com)
- [Mohammed Shah](https://github.com/smashah)
- [Mr. Henry](https://mrhenry.be)
- [Nermal](https://arjunaditya.vercel.app)
- [Pleo](https://pleo.io)
- [Poonacha Medappa](https://poonachamedappa.com)
- [Rob Morris](https://github.com/Rob-Morris)
- [Robert de Forest](https://github.com/rdeforest)
- [Sentry](https://sentry.io)
- [ServieJS](https://github.com/serviejs)
- [Skunk Team](https://skunk.team)
- [Syntax](https://syntax.fm)
- [WriterJohnBuck](https://github.com/WriterJohnBuck)

## License

Unless stated otherwise all works are:

- Copyright © 2013+ [Benjamin Lupton](https://balupton.com)

and licensed under:

- [Artistic License 2.0](http://spdx.org/licenses/Artistic-2.0.html)