背景
主应用是vue,使用vue-cli构建,子应用是react,使用create-react-app构建。子应用热更新时,主应用会频繁崩溃。
主应用端口号:8080
子应用端口号:3000
子应用热更新时,主应用会报这个错误
原因分析
-
由于子工程html是主工程通过fetch请求拉取后,再处理塞入主工程html中。因此在当前服务看来,相当于只有一个8080端口在提供服务。
-
子工程入口文件被打入了热更新的逻辑,导致会发送 ws://localhost:8080/sockjs-node 请求 而不是正常情况下的 ws://localhost:3000/sockjs-node 请求。(有下图分析热更新源码知,默认情况下是根据location.port决定)
// Connect to WebpackDevServer via a socket. var connection =