Реагировать на шаблон - изменение URL API во время выполнения - PullRequest
0 голосов
/ 03 июля 2018

Я использую реактивный шаблон в качестве основы для моего проекта.

В настоящее время я определяю свой URL-адрес API в webpack.base.babel.js следующим образом:

new webpack.DefinePlugin({
      'process.env': {
        NODE_ENV: JSON.stringify(process.env.NODE_ENV),
        PIZZA_API_URL: JSON.stringify('https://some-ip:8081')
      },
    }),

Однако, это происходит только во время сборки.

В приложении create-реакции-приложение вы можете использовать REACT_APP_PIZZA_URL. Все, что начинается с REACT_APP *, может быть установлено в начале среды выполнения.

Так что я могу сделать:

docker run -e "REACT_APP_DB_HOST=HELLOWORLD" -d -p3000:3000 pizza-supplier-ui:test

Как вы делаете то же самое с реактивным шаблоном?

Спасибо

1 Ответ

0 голосов
/ 05 июля 2018

Хорошо - вот ответ на мой собственный вопрос после нескольких часов исследований и проб и ошибок.

Для производственной сборки webpack скомпилирует ваши js-файлы и объединит их в каталог build /.

URL-адреса API, на которые ссылаются как ${process.env.API_URL}/api/query/findPizzaById/, запекаются в скомпилированные js-файлы в каталоге build /.

Поэтому эта команда:

docker run -e "API_URL=HELLOWORLD" -d -p3000:3000 pizza-supplier-ui:test

не имеет абсолютно никакого эффекта. Однако он регистрирует API_URL как переменную окружения в образе работающего докера. Проблема здесь заключается в том, что API_URL определяется в BUILD TIME с использованием переменной среды FROM, в которой выполнялась сборка.

Если бы кто-то боролся с этой проблемой и нашел решение, я был бы признателен за ваше просвещение!

Спасибо

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