2

我正在尝试使用热模块替换设置 webpack,并使用重写模块通过 IIS 中的反向代理访问它

我的简单重写规则:

<rewrite>
  <rules>
    <clear />
    <rule name="ReverseProxyTEST" stopProcessing="true">
        <match url="^test/(.*)" />
        <action type="Rewrite" url="http://127.0.0.1:8080/{R:1}" logRewrittenUrl="true" />
    </rule>
  </rules>
</rewrite>

即重写localhost/test/__webpack_hmr -> localhost:8080/__webpack_hmr

还有我的 webpack 配置:

var webpack = require('webpack');
var express = require('express');

var config = {
  devtool: 'cheap-module-eval-source-map',
  entry: [
    'webpack-hot-middleware/client?path=http://localhost/test/__webpack_hmr',
    './src/index'
  ],
  output: {
    path: path.join(__dirname, 'dist'),
    filename: 'bundle.js',
    publicPath: '/static/'
  },
  plugins: [
    new webpack.HotModuleReplacementPlugin(),
  ...
}

var app = express();
var compiler = webpack(config);

app.use(require('webpack-dev-middleware')(compiler, {
  publicPath: config.output.publicPath
}));

我在端口 8080 上运行 webpack 服务器,如果我在http://localhost:8080访问该站点或在浏览器中手动输入http://localhost:8080/__webpack_hmr一切正常。

但是,如果我尝试通过http://localhost/test访问该站点或在浏览器中手动输入http://localhost/test/__webpack_hmr,则 /test 请求按预期工作,但http://localhost/test/ __webpack_hmr请求正在通过并保持打开状态,但没有数据流回。

我已经验证反向代理正在工作。为了让它工作,我需要使用 webpack 中的一些选项吗?

4

0 回答 0