@SweetPony1

Как побороть проблему с настройками proxy в create-react-app?

Добрый день.
Для отладки react нужно обращаться к скриптам на другом сервере, пока использую заглушки в виде json файлов.
Пробую настроить proxy
https://daveceddia.com/create-react-app-express-ba...
но из адреса /test/img.png получается стандартный, типа /test/img.png/# и перехода не происходит.
Смотрел в файле модуля
\node_modules\react-scripts\scripts\start.js
сделал вывод в консоль
const proxyConfig = prepareProxy(proxySetting, paths.appPublic);
    console.log(proxyConfig);
    process.exit(1);

получил такие данные

[ { target: 'http://192.168.220.129:80',
    logLevel: 'silent',
    context: [Function: context],
    onProxyReq: [Function: onProxyReq],
    onError: [Function],
    secure: false,
    changeOrigin: true,
    ws: true,
    xfwd: true } ]

это и есть мой proxy
package.json
"scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test --env=jsdom",
    "eject": "react-scripts eject"
  },
  "proxy": "http://192.168.220.129:80",

В чем может заключаться проблема?
  • Вопрос задан
  • 1422 просмотра
Пригласить эксперта
Ответы на вопрос 1
@SweetPony1 Автор вопроса
Залез в компоненты
\node_modules\webpack-dev-server\lib\Server.js
использует
const getProxyMiddleware = (proxyConfig) => {
					const context = proxyConfig.context || proxyConfig.path;

					// It is possible to use the `bypass` method without a `target`.
					// However, the proxy middleware has no use in this case, and will fail to instantiate.
					if(proxyConfig.target) {
						return httpProxyMiddleware(context, proxyConfig);
					}
				}

если я явно задаю путь
app.use('/api', httpProxyMiddleware({target: proxyConfig.target, changeOrigin: true}));
все работает
Скорей всего модуль webpack-dev-server неверно подготовил данные для context и proxyConfig
Это уже не сюда.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы