Я пытаюсь установить некоторые переменные окружения в скрипте powershell (и bash) и прочитать их в приложении ReactJS. Сценарий оболочки прост:
$env:AUTHDOMAIN="some.domain.com"
$env:AUTHCLIENTID="bunch-o-characters"
$env:AUTHCALLBACK="http://somewhere:3002/callback"
$env:AUTHAUDIENCE="auth-audience"
$env:PORT=3002
# Get-ChildItem Env:
yarn start
Порт правильно выбирается yarn
, но ни одна из переменных (включая PORT
) не доступна через process.env
в javascript React.
console.log("domain : " + process.env.AUTHDOMAIN);
...
domain : undefined App.js:33
Нет модов для моего package.json
файла:
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
Чего мне не хватает? Get-ChildItem
показывает, что переменные установлены правильно в среде.
Редактировать: я попробовал решение, перечисленное здесь , и оно не работает. Он также блокирует терминал от получения любого вывода:
$ ($env:AUTHDOMAIN="some.domain.com") -and (yarn start)
Тот же результат.
Редактирование # 2: Стоит отметить, что поведение точно такое же в linux / bash (это хороший лакмусовый тест, потому что я делал это в bash около 100 миллиардов раз) - пряжа устанавливает порт правильно, но никакая информация не превращает его в приложение реакции:
#!/bin/sh
export AUTHDOMAIN="some.domain.com"
export AUTHCLIENTID="bunch-o-text"
export AUTHCALLBACK="http://somewhere:3001/callback"
export AUTHAUDIENCE="auth-audience"
export PORT=3002
yarn start
Так что это, вероятно, не имеет ничего общего с powershell.