故事的开头
从一个快要下班的BUG开始,由于原部门同事想要基于一个项目再拆分出几个项目,我们本来用的是qiankun(基座模式)的微前端模式,再拆分其实是比较简单的
只是这次顺便在拆分之前升级了webpack5,升级也是比较简单,这里一笔带过
实施的过程没有亲自操作
问题来了,在子应用升级了webpack5以后,本地通过基座加载调试时候,突然启动不了了
复现问题
临近下班,这个事情要解决,先复现
发现network面板通过基座加载子应用时候,出现了一个js文件404
这里面很蹊跷,因为子应用单独可以启动,子应用被基座家加载时候只有一个js文件404了,而且是一个异步加载的js,那么可以判断,肯定是加载逻辑这块出了问题
在子应用中调试,打开public-path文件:
if (window.__POWERED_BY_QIANKUN__) {
__webpack_public_path__ = window.__INJECTED_PUBLIC_PATH_BY_QIANKUN__;
}
发现这些代码在通过微前端基座模式加载时候,竟然没有运行!!!是整个代码都没有被执行
这个js文件是通过入口index.tsx文件顶部引入的