qiankun微前端vue父应用会因为子应用热更新崩溃

在主应用(基于vue.js的qiankun微前端)中,当子应用(react,create-react-app构建)进行热更新时,会导致主应用崩溃。原因是子应用的热更新逻辑错误地向8080端口发送了ws请求,而非其自身的3000端口。通过设置子应用的环境变量WDS_SOCKET_PORT为3000,可以确保ws请求正确发送到子应用的服务器,从而解决这个问题。
摘要由CSDN通过智能技术生成

背景

主应用是vue,使用vue-cli构建,子应用是react,使用create-react-app构建。子应用热更新时,主应用会频繁崩溃。
主应用端口号:8080
子应用端口号:3000
子应用热更新时,主应用会报这个错误
image-20220507151432305

原因分析

  1. 由于子工程html是主工程通过fetch请求拉取后,再处理塞入主工程html中。因此在当前服务看来,相当于只有一个8080端口在提供服务。
    image-20220507151604051

  2. 子工程入口文件被打入了热更新的逻辑,导致会发送 ws://localhost:8080/sockjs-node 请求 而不是正常情况下的 ws://localhost:3000/sockjs-node 请求。(有下图分析热更新源码知,默认情况下是根据location.port决定)

    // Connect to WebpackDevServer via a socket.
    var connection = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值