Webpack(4)热模块重载从畸形URI中获取更新清单

Webpack (4) hot module reloading fetches update manifest from malformed URI

当 Webpack 尝试获取更新 JSON 文件时,失败并显示控制台错误消息:

[HMR] Update failed: Error: Manifest request to https://subdomain.localhost23dae8e1865781c26fcd.hot-update.json timed out.

注意在 TLD 和路径之间省略了一个斜线…

开发服务器配置:

{
  public: `subdomain.localhost`,
  publicPath: 'https://subdomain.localhost/',
  port: 9000,
  https: false,
  contentBase: path.join(__dirname),
  watchContentBase: true,
  historyApiFallback: true,
  compress: true,
  hot: true
};

需要什么配置来确保更新清单将从正确的路径加载?

我认为 publicPath 应该只是 / 而不是完整路径。

令人惊讶的是,热模块替换插件实际上会查看 config.output.publicPath 属性 而不是 config.devServer.[static].publicPath 值。

devServer.static.publicPath(或 WDS < 4,devServer.publicPath)应该 output.publicPath 相同

更正输出 属性 以使用完整路径 https://subdomain.localhost/ 可以解决此问题。