a better dotenv–from the creator of dotenv.

  • run anywhere (cross-platform)
  • multi-environment
  • encrypted envs

Multiple Environments

Run any environment locally. Create a .env.ENVIRONMENT file and use --env-file to load it. It's straightforward, yet flexible.

  • --env-file 环境变量文件默认为 .env

  • --env-file (multiple)

    • dotenvx run --env-file=.env.local --env-file=.env -- node index.js
    • 默认前一个 env 文件的环境变量优先级高于后一个,所以 .env.local 和 .env 中的环境变量重名时,.env.local 中的环境变量优先级更高,取其值。
  • --overload 手动设置后一个 env 文件的环境变量优先级高于前一个,允许重名覆盖

    • dotenvx run --env-file=.env.local --env-file=.env --overload -- node index.js
  • --verbose 允许查看 env 简要解析过程

  • --debug 允许查看 env 详细解析过程(If you also want to see the secret value being set, use --debug.)

Encrypt Secrets 加密/解密环境变量

Encrypt your secrets to an encrypted .env.vault and then load them securely (and just-in-time) to production, staging, or ci

  • Run dotenvx encrypt to encrypt your all .env.* file(s) to .env.vault

  • 你的环境变量会被加密进 .env.vault 中

  • 根据 .env.keys 中的 dotenv://:key_... 解密环境变量

  • command line: DOTENV_KEY='dotenv://:key_10283719af6...' dotenvx run -- node index.js

Node - Express

Use dotenvx (as an npm module) with express.js.

  • npm 安装 dotenvx 依赖

    • npm install express @dotenvx/dotenvx --save
  • 配置 package.json "scripts" 字段

    "scripts": {
      "start": "dotenvx run -- node index.js"
  • npm run start 启动项目

文章参考: dotenvx