umijs / plugins

🍣 The one-stop shop for official Umi plugins and presets.
349 stars 238 forks source link

是否需要将 `@umijs/plugin-qiankun` 的 `libraryTarget` 由 `umd` 改为 `window` 以避免和 RequireJS 一起使用报错? #808

Closed zjffun closed 2 years ago

zjffun commented 2 years ago

https://github.com/umijs/plugins/blob/dae9300797d298a934d97e31cea4ab191dae788a/packages/plugin-qiankun/src/slave/index.ts#L103-L107

目前这里将 libraryTarget 改成了 umd,但在使用了 RequireJS 的情况下会有冲突:在主项目加载了 RequireJS 的情况下通过主项目打开只会由 qiankun 报找不到声明周期的错误,子项目单独打开会由 RequireJS 报不能在 script 标签里定义匿名模块的错误。

有一个解决方案是 libraryTargetumd 改为 window

复现和解决方案:https://github.com/zjffun/umi-qiankun-requirejs-issue

zjffun commented 2 years ago

qiankun 已在文档中给出这个解决方案: https://qiankun.umijs.org/zh/faq#application-died-in-status-loading_source_code-you-need-to-export-the-functional-lifecycles-in-xxx-entry