Проблема Webpack Dev Server 4 Proxy с несколькими маршрутами - PullRequest
0 голосов
/ 30 января 2020

У меня есть установка fractal , содержащая несколько страниц и компонентов.

Когда я запускаю webpack-dev-server (WPDS), он также запускает фрактальный сервер. Этот фрактальный сервер работает на порту 2222.

Когда я go на локальный хост: 3333 (WPDS) -> он прокси все на локальный хост: 2222 (фрактал)

У меня проблемы с тем, что мне нужно проксировать различные ajax запросы. Например, /players/data?etc потребуется прокси на другой хост, например: https://www.external.com/players/data?etc

Я посмотрел на опцию обхода, но правило / превосходит все остальное. Приветствую предложения.

webpack.config. js

const port = process.env.npm_package_config_port_fractal; //2222

const PROXY_TARGET = 'https://www.external.com';

...

proxy: {
  '/': {
    target: `http://localhost:${port}`, // 2222
  },
  // this will be an ajax request
  '/players/**': { . 
    secure: false,
    changeOrigin: true,
    target: PROXY_TARGET,
  },
  // this will be an ajax request
 '/draw/**': {
    secure: false,
    changeOrigin: true,
    target: PROXY_TARGET,
  },
}
...

1 Ответ

1 голос
/ 03 февраля 2020

Ваша конфигурация почти правильная.
Но порядок правил в конфигурации прокси имеет значение. Итак, с этой конфигурацией:

    devServer: {
        proxy: {
            '/players': {
                secure: false,
                changeOrigin: true,
                target: PROXY_TARGET,
            },
            '/draw': {
                secure: false,
                changeOrigin: true,
                target: PROXY_TARGET,
            },
            '/': {
                target: `http://localhost:${port}`, // 2222
            },
        }
    }

и отчеты wds: enter image description here Так что похоже, что это работает.
Я не видел исходный код webpack-dev-server Но я думаю, что эти правила просто проверяют каждый запрос. И проверки будут искать первое соответствующее регулярное выражение.

Псевдо примеры:

запрос с URL /draw/2

/ проверка игроков не удалась
/ проверка на ничью!

запрос с URL /images/item.png

/ проверка игроков не пройдена
/ проверка розыгрыша не выполнена
/ проверка успешна!

...