qiankun icon indicating copy to clipboard operation
qiankun copied to clipboard

[Bug]qiankun2.8.4 vite+vue3子应用渲染异常

Open 279zlj opened this issue 1 year ago • 6 comments

想请教一下各位大佬,子应用(vue3+vite)多页面有两个入口,基座是vue2+webpack,基座加载分别加载子应用a入口和b入口作为两个子应用 现象:每次挂载现象还不确定,只挂载了一个b入口的子应用或者两个都无法挂载上,wanring:single-spa minified message #41、#21、#1,这个问题的原因是什么,能怎么解决?

image

279zlj avatar Apr 17 '23 10:04 279zlj

vite-plugin-qiankun 插件问题,不支持同时挂载多个子应用,除非使用 setTimeout

https://github.com/tengmaoqing/vite-plugin-qiankun/issues/17

https://github.com/tengmaoqing/vite-plugin-qiankun/issues/35

https://github.com/tengmaoqing/vite-plugin-qiankun/issues/27

gongshun avatar Apr 23 '23 06:04 gongshun

我也是 基座是vue2+webpack,子应用(vue3+vite), 但是我子应用 图片找不到 .....

thgames908 avatar May 05 '23 10:05 thgames908

发现另外一个插件,在开发环境验证可以 vite-plugin-legacy-qiankun

wqhui avatar Oct 09 '23 07:10 wqhui

发现另外一个插件,在开发环境验证可以 vite-plugin-legacy-qiankun

这个也不行,它生产的html是用systemjs去加载js, 用这个插件两个入口作为子组件同时加载,前一个加载的js会被后一个js影响,前一个入口还没执行System.register就被打断了,报错(SystemJS https://github.com/systemjs/systemjs/blob/main/docs/errors.md#2) at eval (polyfills-legacy-93a2bb93.js:1:100613),只能加载后一个入口

279zlj avatar Oct 13 '23 06:10 279zlj

发现另外一个插件,在开发环境验证可以 vite-plugin-legacy-qiankun

这个也不行,它生产的html是用systemjs去加载js, 用这个插件两个入口作为子组件同时加载,前一个加载的js会被后一个js影响,前一个入口还没执行System.register就被打断了,报错(SystemJS https://github.com/systemjs/systemjs/blob/main/docs/errors.md#2) at eval (polyfills-legacy-93a2bb93.js:1:100613),只能加载后一个入口

我建了一个简单的项目:https://github.com/wqhui/qiankun-example,dev正常,preview确实有坑,再研究一下

wqhui avatar Oct 20 '23 10:10 wqhui

发现另外一个插件,在开发环境验证可以 vite-plugin-legacy-qiankun

这个也不行,它生产的html是用systemjs去加载js, 用这个插件两个入口作为子组件同时加载,前一个加载的js会被后一个js影响,前一个入口还没执行System.register就被打断了,报错(SystemJS https://github.com/systemjs/systemjs/blob/main/docs/errors.md#2) at eval (polyfills-legacy-93a2bb93.js:1:100613),只能加载后一个入口

这个还有个问题 systemjs 是通过 polyfills 加载的,qiankun 把 System 对象当成 white list 放到了 global 上了,inactive 里重置了 System, 离开子应用再进来因为 sandbox 不会再执行 polyfills.js 了导致 System 对象丢了

aceHubert avatar Aug 12 '24 09:08 aceHubert