umijs / qiankun

📦 🚀 Blazing fast, simple and complete solution for micro frontends.
https://qiankun.umijs.org
MIT License
15.58k stars 2k forks source link

[Bug]qiankun好像不支持esmodule的语法 #2956

Open waltbest2 opened 1 month ago

waltbest2 commented 1 month ago

提问之前强烈建立您能先阅读一下《如何正确的提出一个 Issue》

What happens?

如果子应用中js使用了esmodule的语法,例如import {} from 'xxx',或者import.meta ,或者export const aa = 3; 都会提示Cannot use xxxxx outside a module 例如 Cannot use 'import.meta' outside a module

感觉和底层用eval执行有关系。

最小可复现仓库

为节约大家的时间,无复现步骤的 ISSUE 会被关闭,提供之后再 REOPEN

复现步骤,错误日志以及相关配置

相关环境信息

daiwanxing commented 1 week ago

是的,因为 eval 无法加载 es module,但是你配置了 libraryTarget: umd 的话,import 的脚本应该会正确编译成了 umd 脚本。 如果构建工具是用的 vite,可以用 vite-plugin-qiankun 解决这个问题。它本质上是在 eval 函数内用 dynamic import 加载 es module