代码之家  ›  专栏  ›  技术社区  ›  William Le

dotenv未读取.env文件中的变量

  •  0
  • William Le  · 技术社区  · 1 年前

    我正在尝试使用 dotenv 以加载以下.env文件:

    PORT=4000
    BASE_URL=http://127.0.0.1:${PORT}/
    
    require('dotenv').config('.env')
    

    由于某些原因, 网络环境 无法解决 ${PORT} 4000 ,相反,它只返回一个如下的纯字符串:

    {
      parsed: {
        PORT: '4000',
        BASE_URL: 'http://127.0.0.1:$PORT/',
      }
    }
    

    我该怎么做 网络环境 读取内部变量 .env 文件

    2 回复  |  直到 1 年前
        1
  •  1
  •   Rudra Sarkar    1 年前

    您可以使用 dotenv-expand 因为 dotenv 不支持使用变量替换 ${} 语法。

    使用 dotenv-expand 安装

    npm install dotenv-expand
    

    add require dotenv展开保持不变 .env 文件 ${} 语法

    var dotenv = require("dotenv");
    var dotenvExpand = require("dotenv-expand");
    
    var result = dotenv.config();
    dotenvExpand.expand(result);
    
    console.log(result.parsed);
    

    输出将返回如下:

    {
      PORT: '4000',
      BASE_URL: 'http://127.0.0.1:4000/'
    }
    

    输出:

    output of env substitution

        2
  •  0
  •   ryodes    1 年前

    尝试使用访问变量 process.env 例如 process.env.PORT