Closed xuchangjunjx closed 3 years ago
可以提供一个最小的复现 demo 么
主应用: https://github.com/xuchangjunjx/main-app 子应用:https://github.com/xuchangjunjx/sub-app1
git-page访问地址 https://xuchangjunjx.github.io/main-app
问题我发现了,简单来说是这样导致的: 主应用我配置了端口8888,子应用配置端口9999 分别本地启动, 主应用主引入Application,地址什么的都没问题
<Application
id="my-sub-app1"
class="test-class"
:sandBox="{
initialPath: '/sub-app1',
disableFakeBody: true,
disable: false
}"
manifest="http://localhost:9999/sub-app1/my-sub-app1.manifest.json"
/>
子应用使用路由懒加载问题就出现了:
vue-router.esm.js?8c4f:2314 ChunkLoadError: Loading chunk 0 failed.
(missing: http://172.21.52.166:8888/sub-app1/0.js)
其实这里的路径就不对了 主应用端口是8888,应该加载的是http://172.21.52.166:9999/sub-app1/0.js
上面我利用git-page部署出来没这个问题 ,就因为host是一致的
我就猜到了可能是跨域到问题 然后本地配置了2个host ,再试 ,果然是这个问题。 难怪我直接部署在git-page上没事。
哈哈 那我明白了 你可以通过指定一下 子应用的 dev 的时候 output 的 publicPath 为 http://localhost:9999/ 来解决这个问题。 核心原因在于 默认 code spliting 之后加载 js 是当前域。 所以你需要让 webpack 知道 你加载 js 的路径在哪里
环境
vue-cli3+chrome v88
依赖
主应用 安装 @alicloud/console-os-vue-host-app": "^1.0.0-next.13" 出现问题如下:
子应用 vue-cli3+chrome v88 安装依赖: "@alicloud/console-os-vue-portal": "^0.4.1", "vue-cli-plugin-console-os": "^0.4.5", 路由配置懒加载
报错:
不配置懒加载没问题