Конфигурация динамической среды React SPA - PullRequest
3 голосов
/ 05 июня 2019

Я создаю приложение React SPA с нуля, используя create-react-app, и настраиваю адрес URI для сервера API моего SPA.Согласно официальной документации, предлагается создать среду .env файлов для таких нужд.Я использую непрерывную доставку как часть процесса разработки.После развертывания приложение React SPA переходит в один контейнер Docker, а API переходит в другой.Эти контейнеры развернуты на отдельных серверах, и я не знаю точно, каким будет URI для API, поэтому нет способа создать отдельный файл .env для каждого развертывания.Есть ли «правильный способ» обеспечить динамическую настройку для моего приложения SPA, чтобы я мог легко изменять параметры среды

Примеры API URI в SPA

// api.config.js

export const uriToApi1 = process.env.REACT_APP_API1_URI;
export const uriToApi2 = process.env.REACT_APP_API2_URI;

// in App.js

import { uriToApi1, uriToApi2 } from '../components/config/api.config.js';

/* More code */
<DataForm apiDataUri={`${uriToApi1}/BasicService/GetData`} />
/* More code */
<DataForm apiDataUri={`${uriToApi2}/ComplexService/UpdateData`} />

1 Ответ

1 голос
/ 05 июня 2019

Давайте представим, что вы создаете свой код внешнего интерфейса в некоторой папке dist, которая будет упакована Docker в образ. Вам необходимо создать папку config в вашем проекте, которая также будет добавлена ​​в папку dist (и, очевидно, будет упакована в образ Docker). В этой папке вы будете хранить некоторые файлы конфигурации с некоторыми специфичными для сервера данными. И вам нужно загрузить эти файлы при запуске приложения реакции.

Поток будет таким:

  1. Пользователь открывает ваше приложение.
  2. Ваше приложение отображает загрузчик и получает файл конфигурации (например, ./config/api-config.json)
  3. Затем ваше приложение читает этот конфиг и продолжает свою работу.

Вам необходимо настроить Docker Volumes в вашем конфигурационном файле Docker и подключить папку config в контейнере Docker с некоторой папкой config на вашем сервере. После этого вы сможете заменить файлы конфигурации в Docker-контейнере файлами на вашем сервере. Это поможет вам переопределить конфигурацию на каждом сервере.

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