问题:

项目一直运行没有问题,但是今天突然开始报错。同时也影响到了修改热更新。

问题原因:

1.早上IT部门调试网络,开发的时候网络环境变更导致开发服务器的IP地址换了,这样开发服务器会不知道如何确定访问源。
2.报这个错的原因是因为:hmr的接口的地址和项目启动的服务地址不是同一个!虽然明明就是同一个,但是代码不认啊。

解决思路

1.首先看看sockjs的定义:是一个JavaScript库,提供跨浏览器JavaScript的API,创建了一个低延迟、全双工的浏览器和web服务器之间通信通道。在项目运行以后,network会一直调用这个接口。如果没有使用,那么就一直会报这个异常。
2.SockJS是一个JavaScript库(用于浏览器),提供类似于WebSocket的对象。其作用就是开发环境下,保证我们在改完代码重新编译之后,能够通知浏览器重新加载变更结果
3.可以理解为,这个库是用来让本地与浏览器之间的热模块更新通信的,但是现在这两个地址对接不上了,所以报了这个错。

解决办法:

`config.devServer.host("localhost");`

或者

devServe:{
  host:'localhost'
},

我的理解仅仅只能到这里了,如果有理解更深入的大神欢迎指导

2021.12.20更新---------------------------------------------------------------------

突然发现出现这个问题的原因可能是因为我使用了VPN进行了http代理导致了serve找不到地址报错 - - 就很尴尬。

ClearBoth
25 声望3 粉丝

Hello World!