qiankun使用问题汇总
一、父应用为umi4,子应用为umi3
接口报错无法使用
需要在父应用设置一个proxy,例如
proxy: {
'/xxx': {
target: 'http://localhost:8899',
changeOrigin: true,
pathRewrite: { '^/xxx': '' },
},
}
然后在子应用中的request这里判断是否是处于qiankun环境下,若是需要给所有请求添加父级设置的统一前缀
prefix: window.__POWERED_BY_QIANKUN__ ? '/xxx' : undefined,
本地父级应用打开子应用网络不停重复请求,并且The development server has disconnected.
原因:这个问题是由于同时起了 devServer 和 node 两个端口服务,所以当我访问后端渲染页面时,umi 中的 socket server 端口指向错误。所以它会不断地重连。
解决:将子应用的的server关闭即可,在package.json中设置如下命令
"start": "cross-env APP_TYPE=site PORT=8899 SOCKET_SERVER=none umi dev",
二、父应用为umi3,子应用为umi4
提示你lifestyle未export
三、父子均为umi4
Unhandled Rejection (ChunkLoadError): Loading chunk vendors-XXXXX failed
原因:由于父应用未能请求到子应用的资源导致,现有两种解决办法
1、父应用的entry拼接上子应用的publicPath。
2、本地把子应用配置的publicPath去掉即可。
四、qiankun父子应用在同一域名下入口
1、父应用的入口改为跟子应用的publicPath一致即可
五、qiankun父子antd样式污染,父子均为umi4
1、修改父应用的antd公共前缀
antd: {
configProvider: {
prefixCls: 'raj',
},
},
theme: {
'ant-prefix': 'raj',
},