Как развернуть несколько ветвей функций приложения React в тестовой среде - PullRequest
0 голосов
/ 07 ноября 2018

Устаревшее приложение моей компании - это приложение .NET MVC с внешним интерфейсом Knockout, и мы развертываем функциональные ветви в нашей тестовой среде, чтобы QA мог тестировать эти новые функции изолированно. Эти URL структурированы так: https://{testEnvOrigin}/{featureBranchName}.
Мы пытаемся воспроизвести эту функцию в статическом приложении React, которое подключается к нашему сервисному уровню. Это означает, что нам нужно динамически установить базу href в зависимости от того, какая ветвь тестируется.

Мы используем Webpack для сборки приложения React, и до этого момента мы использовали dotenv. Кажется, что, если мы не сделаем отдельную сборку Webpack для каждой отдельной среды и каждой отдельной ветви, мы не сможем использовать что-то вроде dotenv для установки базового href и других переменных среды. Мы стараемся избегать множества сборок, потому что это добавит некоторую непредсказуемость при развертывании приложения в новых средах. Мы несколько растеряны из-за того, что каждое разработанное нами решение кажется неуклюжим и трудно поддерживаемым. Но мы полагаем, что это не может быть необычным вариантом использования, поэтому, возможно, мы просто упускаем некоторые мелкие детали реализации Webpack, dotenv или какого-либо другого инструмента в нашем стеке, который мог бы решить эту проблему для нас.

Наши текущие идеи для решения этой проблемы:

  1. Создание новой сборки Webpack для каждой ветви и среды, каким-то образом информируя Webpack об имени ветви функции, чтобы мы могли установить его в качестве переменной среды. Мы вкратце попробовали вариант № 2, но он нам не понравился, поэтому мы стремимся к этому.
  2. Неуклюжее решение, в котором мы храним статическое приложение и загружаем «переменные среды» из файла JSON в каталоге public при инициализации приложения. Эти переменные включают в себя базовую ссылку, которая передается как basename в React Router. Идея состоит в том, что при каждом развертывании мы копируем содержимое отдельного файла JSON в эту общедоступную конфигурацию JSON. Но для этого нужно, чтобы разработчики вручную создавали эти JSON-конфиги для своих специфических веток и устанавливали для свойства base href соответствующее имя.
    Я могу предоставить более подробную информацию об этом, если это необходимо, но нам действительно это не понравилось, поэтому мы отошли от этого.
  3. Отказ от всего этого и добавление слоя MVC, возможно, через .NET Core, который может инициализировать приложение со всеми необходимыми переменными. Это было бы хорошим решением, но мы не хотим использовать всю другую инфраструктуру пользовательского интерфейса только для инициализации одного представления. Кроме того, было бы умеренным риском втиснуть это в это приложение сейчас, на более поздних стадиях разработки.

Кто-нибудь сталкивался с этой проблемой? Как вы решили это, или хотя бы подошли к этому? Я начинаю чувствовать, что мне не хватает какого-то очевидного решения, потому что я не могу найти какие-либо ресурсы в Интернете, которые касаются этого.

Извините, если этот вопрос был задан ранее, но все, что я искал, было связано не с React / SPA, а с тем, что касается развертывания на страницах GitHub.

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