如何使用 dotenv 在另一个环境变量名称和值中使用一个环境变量值?

Mar*_*tin 5 javascript environment-variables dotenv

对于我的测试框架,我使用dotenv来读取和初始化不同测试环境的环境变量。现在我想使用特定的环境变量值作为另一个环境变量的值和名称的一部分。

因此,我在使用 .envexport INSTANCE=1文件初始化 env 文件之前设置了环境变量dotenv

这是我的环境文件,其中包含我想要初始化的所有环境变量dotenv

# INSTANCE as part of env var value
MY_DOMAIN="http://mypage/"$INSTANCE""

# INSTANCE as part of env var name
SUBDOMAIN"$INSTANCE"="/mysubdomain"
Run Code Online (Sandbox Code Playgroud)

而且这个指标也不起作用:

# INSTANCE as part of env var value
MY_DOMAIN=http://mypage/${INSTANCE}

# INSTANCE as part of env var name
SUBDOMAIN${INSTANCE}=/mysubdomain
Run Code Online (Sandbox Code Playgroud)

这可以通过 bash 来完成

export MY_DOMAIN="http://mypage/"$INSTANCE"" SUBDOMAIN"$INSTANCE"="/mysubdomain"

echo $MY_DOMAIN
http://mypage/1

echo $SUBDOMAIN1
/mysubdomain
Run Code Online (Sandbox Code Playgroud)

但使用dotenv它对我来说不起作用。我有以下代码:

const dotenv = require("dotenv");
var result = dotenv.config({ path: '/path/to/my/env/file' });

console.log(result.parsed);
Run Code Online (Sandbox Code Playgroud)

产生console.log以下结果:

{
  MY_DOMAIN:'http://mypage/"$INSTANCE"'
}
Run Code Online (Sandbox Code Playgroud)

INSTANCE因此,无法使用环境变量,该值将被忽略。有什么办法可以解决我的问题吗?

Mar*_*tin 2

我找到了使用dotenv-expand 的解决方案:)