wujie icon indicating copy to clipboard operation
wujie copied to clipboard

vite + react 通过 @vitejs/plugin-legacy 编译过的dist包,因为使用了 System.register() 和 System.import(),导致在 火狐 52.3 低版本浏览器 降级成 iframe后,执行不了 System.register() 和 System.import() 里面的代码

Open mygodlin opened this issue 2 years ago • 1 comments

描述bug vite + react 通过 @vitejs/plugin-legacy 编译过的dist保重,因为使用了 System.register() 和 System.import(),导致在 火狐 52.3 低版本浏览器 降级成 iframe后,执行不了 System.register() 和 System.import() 里面的代码

如何复现 给出详细的复现步骤 1、子应用:pnpm create vite =>pnpm install =>pnpm install @vitejs/plugin-legacy => vite.config.js 里面 添加了 浏览器兼容配置 =>pnpm build =>pnpm preview 2、父应用接入 子应用,官网正常接入 3、在火狐 52.3浏览器打开(父应用和子应用都已经确保 @vitejs/plugin-legacy 做的浏览器兼容生效,都能在 浏览器单独打开),子应用加载不出来,经过查找是因为子应用编译的包中 包含 System.import() System.register() 异步加载方案 错误截图 https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/07c99891e55940e9b0d663207f5a3963~tplv-k3u1fbpfcp-jj-mark:0:0:0:0:q75.image#?w=1920&h=871&s=139465&e=png&b=fcfbfb https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/97adc8a8f54e4e3c823a5139c60bbbe9~tplv-k3u1fbpfcp-jj-mark:0:0:0:0:q75.image#?w=1920&h=960&s=177057&e=png&b=fcfcfc

最小复现仓库或者地址 其实不用复现,只要能解决 子应用中使用了 System.register() 、System.import() 异步加载的代码,能够在父应用使用无界中框架运行即可,现在我还在找方案和查找 无界 运行 子应用的 源代码逻辑

### Tasks

mygodlin avatar Nov 17 '23 02:11 mygodlin

有找到解决方案么? 不然降级还得自己用iframe来实现!

chanhuaxiang avatar Apr 02 '24 03:04 chanhuaxiang