Как использовать значение переменной среды в другом имени и значении переменной среды с помощью dotenv?

В своей среде тестирования я использую dotenv для чтения и инициализации переменных среды для различных тестовых сред. Теперь я хочу использовать конкретное значение переменной среды как часть значения и имени других переменных среды.

Итак, я установил env var export INSTANCE=1 перед инициализацией файла env с помощью dotenv.

Это мой файл env со всеми переменными env, которые я хочу инициализировать с помощью dotenv:

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

# INSTANCE as part of env var name
SUBDOMAIN"$INSTANCE"="/mysubdomain"

И эта метрика тоже не работает:

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

# INSTANCE as part of env var name
SUBDOMAIN${INSTANCE}=/mysubdomain

Это возможно сделать через bash с

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

echo $MY_DOMAIN
http://mypage/1

echo $SUBDOMAIN1
/mysubdomain

Но при использовании dotenv у меня это не работает. У меня такой код:

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

console.log(result.parsed);

console.log дает следующий результат:

{
  MY_DOMAIN:'http://mypage/"$INSTANCE"'
}

Таким образом, env var INSTANCE использовать нельзя, значение будет проигнорировано. Есть ли какое-нибудь решение моей проблемы?


person Martin    schedule 01.04.2020    source источник
comment
Отменено сопровождающим: github.com/motdotla/dotenv/issues/159#issuecomment -263137856   -  person Ryuno-Ki    schedule 01.04.2020


Ответы (1)


Я нашел решение, используя dotenv-expand :)

person Martin    schedule 01.04.2020