1

所以目前我正在开发一个 .NET MVC 应用程序,其中应用程序的一部分是一个门户,客户端完全使用 reactjs 呈现。

基本上,我的门户网站有一个 index.cshtml 文件,看起来像这样:

<html lang="en">
<head>
    <title>User Portal</title>
</head>

<body>
    <div id="app"></div>
    <script src="http://localhost:3000/bundle.js"></script>
</body>
</html>

我的客户端 reactjs 应用程序使用快速服务器在端口:3000 上同时运行。我通过 localhost:53079 访问我的主 MVC 应用程序。我想知道是否可以让热模块重新加载以在端口 53079 上工作,因为这是我访问我的应用程序的方式?

我的 webpack.config.dev.js 看起来像这样:

export default {
  debug: true,
  devtool: 'inline-source-map',
  noInfo: false,
  entry: [
    'eventsource-polyfill', // necessary for hot reloading with IE
    'webpack-hot-middleware/client?reload=true', //note that it reloads the page if hot module reloading fails.
    path.resolve(__dirname, 'src/index')
  ],
  target: 'web',
  output: {
    path: __dirname + '/dist', // Note: Physical files are only output by the production build task `npm run build`.
    publicPath: 'http://localhost:3000/',
    filename: 'bundle.js'
  },
  devServer: {
    contentBase: path.resolve(__dirname, 'src')
  },
  plugins: [
    new webpack.HotModuleReplacementPlugin(),
    new webpack.NoErrorsPlugin()
  ],
  module: {
    //.....
  }
};

我尝试在 devServer 以及输出路径中修改端口号,但没有任何运气。我也几乎找不到关于如何配置 hmr 端口号的资料。目前我的控制台被以下错误消息乱扔:

EventSource 的响应具有不是“text/event-stream”的 MIME 类型(“text/html”)。中止连接。

4

1 回答 1

0

我想通了,您需要将选项设置为指向您的 hmr 端点。

app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions {
          HotModuleReplacement = true,
          HotModuleReplacementEndpoint = "/dist/__webpack_hmr"
        });
于 2017-08-24T16:31:26.543 回答