使用webpack devserver代理选项时如何排除某些url模式?

时间:2019-04-13 05:43:32

标签: webpack webpack-dev-server

背景:我的开发环境是cloud9 Web ide。我的应用服务器通过nginx监听8000端口。我在9000端口运行webpack devserver。

我想将除根URL /和以/sockjs开头的URL之外的所有请求代理到应用服务器。我检查了devserverhttp-proxy-middleware的文档,发现很难在与http-proxy-middleware中的proxy(['/api/**', '!**/bad.json'], {...})相对应的webpack中找到正确的解决方案。 我尝试过:

devServer: {
  disableHostCheck: true,
  proxy: {
    '!sockjs': { 
      target: `http://0.0.0.0:8000`,
    },
  },
  port: 9000,
},

devServer: {
  disableHostCheck: true,
  proxy: {
    [['/**', '!**/sockjs']]: { 
      target: `http://0.0.0.0:8000`,
    },
  },
  port: 9000,
},

我知道bypass,但是它也不起作用。

devServer: {
  disableHostCheck: true,
  proxy: {
    '/': { 
      target: `http://0.0.0.0:8000`,
      bypass: function(req, res, proxyOptions) {
        if (req.originalUrl.startsWith('/sockjs')) {
          return '/index.html';
        }
      }, 
    },
  },
  port: 9000,
},

0 个答案:

没有答案