我正在尝试使用热模块替换设置 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 中的一些选项吗?