#javascript #reactjs #environment-variables
Вопрос:
Переменные среды моего приложения react по-прежнему возвращаются неопределенными после попытки добавить «REACT_APP_» в мою переменную. Я использую create-react-приложение, и я вижу много добавлений «REACT_APP_» в качестве общего решения для этого, но это не работает для меня.
.env:
REACT_APP_UNSPLASH_KEY=my_api_key
REACT_APP_OWM_KEY=my_api_key
В моем App.js:
const get_random_photo = () =>
`https://api.unsplash.com/photos/random/?orientation=landscapeamp;w=1920amp;h=1080amp;query=${weather_query}amp;client_id=${process.env.REACT_APP_UNSPLASH_KEY}`;
const get_weather = () =>
`https://api.openweathermap.org/data/2.5/weather?q=${location}amp;units=metricamp;appid=${process.env.REACT_APP_OMW_KEY}`;
Я также попытался установить env-cmd
, разделить .env на .env.production
и .env.development
и отредактировать сценарии для package.json:
"scripts": {
"preinstall": "npx npm-force-resolutions",
"start:staging": "env-cmd -f .env react-scripts start",
"start:prod": "env-cmd -f .env react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
И все равно не везет.
Ответ №1:
Если ваши файлы .env называются так .env.production
, и .env.development
вы не используете их в сценариях package.json.
Это должно быть похоже env-cmd -f .env.development react-scripts start
, и ваша производственная сборка может быть env-cmd -f .env.production react-scripts build
Комментарии:
1. Эта функция доступна с react-scripts@0.2.3 и выше. Надеюсь, они у вас есть.
2. У меня есть
"react-scripts": "^4.0.3"
. Мой env-cmd-это версия^10.1.0
3. Звучит хорошо. Я не вижу никаких непосредственных проблем с вашим кодом. Надеюсь, вы завершили текущую задачу и начали новую. Также нет «» вокруг вашей ценности в файлах .env.
4. Да, я много раз пытался перезагрузить сервер, но все равно безуспешно. Мне интересно, есть ли какие-либо пакеты или зависимости, о которых я все еще должен знать.