带有动态URL的Webpack开发服务器代理

时间:2020-06-30 02:44:03

标签: node.js webpack

我有以下网址:sample/company/1231/invoices/download/123

这是我的Webpack Dev Server配置

devServer: {
   proxy: {
     '/sample/company' : {
       target: envConfig.WEBPACK_DEVSERVER_PROXY,
       ws: true,
       changeOrigin: true,
     }
   }
}

我的问题是所有带有/sample/company的URL都会受到影响。我只想在规则具有URL sample/company/1231/invoices/download/123时生效。

123是动态的,它们是ID。

我是新来的,因此不胜感激!谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用 pathRewrite 创建自己的重写函数。我没有测试它,但它一定是这样的:

devServer: {
  proxy: {
    '/sample/company' : {
      target: envConfig.WEBPACK_DEVSERVER_PROXY,
      ws: true,
      changeOrigin: true,
      pathRewrite: function(path, req){
        var arrMatches = path.match(/\/sample\/company\/(.+)\/invoices\/download\/(.+)/);
        if(arrMatches){
          // arrMatches[0] > fullmatch
          // arrMatches[1] > group 1
          // arrMatches[2] > group 2
          return 'my/new/path/' + arrMatches[1] + '/' + arrMatches[2] + '/'
        }
      }
    }
  }
}

here