Neologistic Paraphasic Mumbling

    dotenv-expand
    TypeScript icon, indicating that this package has built-in type declarations

    6.0.1 • Public • Published

    Announcement 📣
    From the makers that brought you Dotenv, introducing Dotenv Sync.
    Sync your .env files between machines, environments, and team members.
    Join the early access list.💛

    dotenv-expand

    dotenv-expand

    Dotenv-expand adds variable expansion on top of dotenv. If you find yourself needing to expand environment variables already existing on your machine, then dotenv-expand is your tool.

    BuildStatus NPM version js-standard-style

    Install

    # Install locally (recommended)
    npm install dotenv --save
    npm install dotenv-expand --save

    Or installing with yarn? yarn add dotenv-expand

    Usage

    Usage is a cinch!

    1. Create a .env file with variable expansions in the root directory of your project

    # .env file
    #
    # Add environment-specific variables on new lines in the form of NAME=VALUE
    #
    PASSWORD=s1mpl3
    DB_HOST=localhost
    DB_USER=root
    DB_PASS=$PASSWORD

    2. As early as possible in your application, import dotenv and expand with dotenv-expand

    var dotenv = require('dotenv')
    var dotenvExpand = require('dotenv-expand')
    
    var myEnv = dotenv.config()
    dotenvExpand.expand(myEnv)
    
    console.log(process.env)

    3. That's it! 👏

    process.env now has the expanded keys and values you defined in your .env file.

    Examples

    See test/.env for simple and complex examples of variable expansion in your .env file.

    Documentation

    DotenvExpand exposes one function:

    • expand

    Expand

    expand will expand your environment variables.

    const dotenv = {
      parsed: {
        BASIC: 'basic',
        BASIC_EXPAND: '${BASIC}',
        BASIC_EXPAND_SIMPLE: '$BASIC'
      }
    }
    
    const obj = dotenvExpand.expand(dotenv)
    
    console.log(obj)

    Options

    ignoreProcessEnv

    Default: false

    Turn off writing to process.env.

    const dotenv = {
      ignoreProcessEnv: true,
      parsed: {
        SHOULD_NOT_EXIST: 'testing'
      }
    }
    const obj = dotenvExpand.expand(dotenv).parsed
    
    console.log(obj.SHOULD_NOT_EXIST) // testing
    console.log(process.env.SHOULD_NOT_EXIST) // undefined

    FAQ

    What rules does the expansion engine follow?

    The expansion engine roughly has the following rules:

    • $KEY will expand any env with the name KEY
    • ${KEY} will expand any env with the name KEY
    • \$KEY will escape the $KEY rather than expand
    • ${KEY:-default} will first attempt to expand any env with the name KEY. If not one, then it will return default

    You can see a full list of examples here.

    Contributing Guide

    See CONTRIBUTING.md

    CHANGELOG

    See CHANGELOG.md

    Who's using dotenv-expand?

    These npm modules depend on it.

    Install

    npm i dotenv-expand

    DownloadsWeekly Downloads

    7,376,410

    Version

    6.0.1

    License

    BSD-2-Clause

    Unpacked Size

    9.21 kB

    Total Files

    6

    Last publish

    Collaborators

    • motdotla