@Froggyweb

Как настроить proxy dev-server?

Доброго дня.
Суть задачи: нужно настроить прокси всех ресурсов с удаленного сервера,
но при этом js, css и картинки брать с localhost
сделал так
devServer: {
    host: '0.0.0.0',
    proxy: {
      '/': {
        target: 'http://mysite.by',
        secure: false,
        changeOrigin: true,
        autoRewrite: true,    
      }
    },


Проксируется естественно все, как исключить определенные папки с ресурсами?
  • Вопрос задан
  • 2149 просмотров
Решения вопроса 1
@Froggyweb Автор вопроса
Гугл ответа не дал, но сказал что можно :)
После гугления на гитхабе нашел решение, которое не очень работало, но подход был правильный.
Кроме этого у меня была CMS Modx Revo c тегом base, который все портил. Первым делом надо убрать его, в настройках ЦМС изменить схему генерации урлов на full
ну и допилить webpack.config из примера на гитхаб
const path = require('path');
const log = require('debug')('webpack.config');
const webpack = require('webpack');
module.exports = (env) => {

  log('env', env);

  return {

    entry: {
      main: [
        './client/main.js',
        './client/main.css'
      ]
    },

    output: {
      publicPath: env.public,
      filename: 'scripts/[name].js',
      path: `${path.resolve('./dist')}/static/theme`
    },

    devServer: {
      hot: true,
      contentBase: './dist',
      port: env.port,
      host: "0.0.0.0",
      proxy: {
        "/": {
          secure: false,
          changeOrigin: true,
          autoRewrite: true,
          headers: {
            'X-ProxiedBy-Webpack': true,
          },
          target: 'http://mysite.by',
          bypass (request, response, options) {
            const asset = request.path;
            console.log(asset);
            // yesno if the requested path is one of the following.
            const byPass = [
                env.public,
                '/webpack-dev-middleware/',
                '/webpack-dev-server/',
                '/sockjs-node/',
                '/socket.io/',
            ].find(pattern => asset.indexOf(pattern) >= 0 ) !== undefined;
            return byPass && request.path;
          }
        },
      }
    },

    module: {
      rules: [
        { test: /\.css$/,
          use: [
            {loader: 'style-loader'},
            {loader: 'css-loader'}
          ]
        }
      ]
    },
    plugins: [
      new webpack.HotModuleReplacementPlugin(),
    ]
  } 
};


И все заработало даже HMR :)
Так что browsersync и gulp по прежнему отдыхают в архивной папке :)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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