场景:
基于qiankun的微前端博客系统,下面两个功能模块是使用微前端的方式进行加载的。
遇到的问题:
在本地开发环境中,子应用都能正常加载进来。但是部署到线上环境中,博客主页子应用正常运行(React版)博客管理子应用(vue版)可以加载进来,但是无法解析加载进来的文件,加载chunk包失败,下图中的输出就是子应用中的代码,但是js文件无法加载到。
查看打包配置和打包结果
这些都是没有问题的,线上nginx配置
出现原因
这些都是没有问题的,后来想到博客管理的页面都是使用的路由懒加载,这些文件在加载的时候路径发生错误,下图中0.xx.js和1.xx.js就是动态加载的路由组件,从请求的url中看出显然请求路径少了一层/blogMannage。
解决方案
1.最简单的方式就是不适用路由的懒加载功能,这样在webpack打包的时候就会将包打到一起,不会出现分包加载路径出错的问题。
2.手动在打包好之后的js文件中找到动态加载路由的地方,将切换的地址手动加一层/blogMannage,如下图
3.我的优化想法是每次打包都要手动修改打包好的文件,这显然不方便,有没有一种直接修改webpack配置的方式,将所有动态切换路由的地方都自动加上自己想要的路径。在webpack官方文档中也没有找到类似的解决办法 求大佬帮助