微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何让webpack-dev-middleware通过index.html为SPA服务所有路由

如何解决如何让webpack-dev-middleware通过index.html为SPA服务所有路由

我正在尝试让webpack-dev-middleware为所有路线提供由index.html生成html-webpack-plugin文件。例如,localhost:1234/可以很好地加载index.html文件,但是如果尝试加载localhost:1234/foo,Express表示它找不到GET请求的处理程序。

在非开发环境中,我的快速设置中有此行,可以解决此问题。

app.get('*',(req,res) => {
  const indexPath = path.join(
    fs.realpathSync(process.cwd()),`${rootDir}/${isProd ? 'public' : 'client'}`,'index.html'
  );

  res.sendFile(indexPath);
});

但是使用webpack-dev-middleware时,磁盘上没有要引用的文件,它会中断。

我尝试使用以下配置强制webpack-dev-middleware写入磁盘,但是我也正在运行nodemon,由于某种原因,这导致它每15秒左右触发一次重建。

  app.use(
    webpackDevMiddleware(compiler,{
      publicPath: webpackConfig.output!.publicPath!,writetodisk: true,})
  );
} 

我觉得有一个更优雅的解决方案,我看到webpack-dev-server的{​​{3}} 但是中间件没有此选项。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。