Open rt-bear opened 3 years ago
同求 我也出现了同样的问题 目前在找解决方案。
找到了一个方案可以解决你所描述的问题,关闭乾坤的沙箱配置就行。
start({sandbox:false})
https://github.com/umijs/qiankun/issues/1148
@rt-bear 可以参照webpack5 的文档进行修改,已经可以在主应用里加载 https://github.com/module-federation/module-federation-examples/blob/master/advanced-api/dynamic-remotes/app1/src/App.js
如果是path问题可以尝试下使用Promise的引入方式
配置publicPath可以解决
@rt-bear 大佬这套架构成功了吗?我最近也在研究这套架构,但是遇到一个很严重的问题,方便交流一下吗?
这个问题有两个原因
var
,在乾坤中由于给子应用包裹了一层代理,var 模式无法挂载到window上。 所以需要配置library属性,如果是嵌套使用(子应用通过模块联邦使用了其他模块),还要配置remoteType属性,如果不配,默认加载其他应用的共享模块模式是跟随library的配置属性,会报fn is undefined的错误。具体配置如下,
config
.plugin("module-federation-plugin")
.use(require("webpack").container.ModuleFederationPlugin, [
{
name: "test", // 不能带中划线,使用驼峰命名
filename: "remoteEntry.js",
library:{type:'umd',name:"sitRuntimeWeb"},
remoteType:'script',
exposes: {
".": "./packages/index.js",
},
remotes: {
"xxxxx": "xxxx.remoteEntry.js",
}
}
]);
}
url错误,一般是这个问题导致的. 在使用qiankun和Mf的情况下,先加载qiankun,启动js沙箱,后加载mf模块
What happens?
qiankun的父子项目都用的umi, 用Module Federation做模块共享,控制台报错 Loading script failed remoteEntry.js的路径很奇怪 http://localhost:3001///localhost:3000/remoteEntry.js
查阅webpack文档,output.publicPath 配置项设置为 'auto' ,并没有效果
最小可复现仓库
https://github.com/rt-bear/qiankun-mf-demo
复现步骤,错误日志以及相关配置
相关环境信息