добавление «REACT_APP_» для переменной .env по-прежнему возвращает неопределенное значение

#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. Да, я много раз пытался перезагрузить сервер, но все равно безуспешно. Мне интересно, есть ли какие-либо пакеты или зависимости, о которых я все еще должен знать.