«

Webpack5把微前端qiankun的配置文件tree sharking了

emer 发布于 2022-10-17 16:34   828 次阅读     


network面板通过基座加载子应用时候,出现了一个js文件404

这里面很蹊跷,因为子应用单独可以启动,子应用被基座家加载时候只有一个js文件404了,而且是一个异步加载的js,那么可以判断,肯定是加载逻辑这块出了问题

在子应用中调试,打开public-path文件发现没有运行

核心问题是:当时发现子应用的__webpack_publicPath__这个变量没有被修改,所以造成了请求的host不对,异步加载的js文件404了
文件被webpack5给tree sharking了
package.json中添加的sideEffects字段

"sideEffects":["src/public-path.js"]


注:

if (window.POWERED_BY_QIANKUN) {

    webpack_public_path = window.INJECTED_PUBLIC_PATH_BY_QIANKUN;

这个代码在上下文中其实是没有被引用的,只有在代码编译后,异步的代码js文件被加载时才能用到webpack_public_path这个变量,所以就被清除了代码



那么为了解决这个问题,我们需要在 package.json 中添加 "sideEffects" 属性