Реагировать не на получение данных из обновленного файла env - PullRequest
0 голосов
/ 10 октября 2019

В моем файле .env есть некоторые переменные среды, которые обновляются при обновлении некоторых значений в базе данных.

Пример:

REACT_APP_FIREBASE_ID=1234567890

Когда я регистрирую это на консоли в моем приложении реакции:

console.log(process.env.REACT_APP_FIREBASE_ID) //this gives "1234567890"

Но когда файл .env обновляется чем-то другим:

Пример:

REACT_APP_FIREBASE_ID=9876543210

Журнал по-прежнему дает старое значение:

console.log(process.env.REACT_APP_FIREBASE_ID) //this still gives "1234567890"

Я использую наCRA в режиме разработки с «npm start»

Если я завершу работу сервера и перезапущу его снова, я смогу увидеть правильный вывод на консоль. НО, это не работает после "npm run build"

Как очистить кэш среды после изменения файла .env в производственном режиме?

Ответы [ 2 ]

0 голосов
/ 14 октября 2019

Вот как я это решил.

Мой первый подход состоял в том, чтобы получить значение из файла .env, но, если сервер не будет перезапущен, этот подход не работает. [BAD]

Моя вторая мысль состояла в том, чтобы создать файл JSON и сохранить данные внутри него, а также обновлять файл JSON при каждом обновлении базы данных. К сожалению, это был очень плохой подход, потому что CRA (или, возможно, любой реагирующий проект) не может вызвать файл вне папки src, и после сборки нет возможности изменить встроенные js-файлы. [ОЧЕНЬ ПЛОХО]

Наконец-то мне удалось решить эту проблему с помощью этого подхода [DECENT, я думаю]

  • Сохранение данныхдля таблицы в формате значения ключа (Вы также можете просто сохранить в формате JSON)
  • Когда приложение загружено (основной компонент загружен), вызовите API, который получает это значение ключа (или JSON)и сохраните данные в LocalStorage браузера.
  • Получите значение в приложении с помощью localStorage.getItem("theKeyName")

A Совет: Вы можете проверить, еслиключ уже присутствует в LocalStorage до вызова API.

if(localStorage.getItem("theKeyName") !== null) {
    //your API fetch request or redux dispatch
}
0 голосов
/ 10 октября 2019

Лучше всего хранить ключи API в Google API> Учетные данные . Подробнее в этой статье о том, как этого добиться.

Хранение таким способом будет более безопасным, чем использование файлов .env.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...