Настройка прокси в package.json и использование реакции-роутера - PullRequest
0 голосов
/ 14 марта 2019

Меня попросили внести некоторые изменения в устаревший проект, в котором нет React Router. Одним из изменений является: добавить его. Приложение основано на пакете create-react-app, но настроено так, чтобы определенные запросы указывали на внешний сервер в dev.

Проблема с этим, похоже, заключается в прокси-символе с подстановочными символами внизу.

В package.json:

"/path/one": {
    "target": "https://server.one.com:8509/",
    "secure": false,
    "changeOrigin": true
  },
  "/anotherpath": {
    "target": "https://server.two.com:7449/",
    "secure": false,
    "changeOrigin": true
  },
  "/.*": {
    "target": "https://server.x.com:8442/",
    "secure": false,
    "changeOrigin": true
  }

Теперь, если я добавлю такой маршрутизатор, как этот:

<BrowserRouter>
  <Switch>
    <Route path="/new-page/" component={NewPage} />
    <Route component={OldPage} />
  </Switch>
</BrowserRouter>

При переходе к localhost:3000/new-page/ попадет прокси, указанный в package.json, и проигнорирует маршрутизатор.

В пакете create-react-app на сервере разработчика Webpack настроены правильные опции для включения react-router, а именно установлено свойство historyApiFallback. Обычно они играют хорошо, поэтому все зависит от настроек прокси.

Итак: есть идеи, как решить эту проблему? Добавление дополнительной записи прокси, перенаправляющей /new-page/ обратно на localhost, похоже, не работает, и я не уверен, используют ли записи прокси в package.json глобусы или регулярные выражения.

...