vue cli 热更新无效,并且请求中没有 sockjs-node 的请求

机缘巧合之下触发了一个 vue cli 的热更新 bug ,问题如下:

  1. vue cli 热更新完全无效

  2. 浏览器 Network 中无任何 sockjs-node 的请求

原因:出现此问题,大概率是代码中有 clearTimeout(true) 这句代码,我的问题是用了 lazy-load-img.js,并且在 main.js 执行了初始化图片懒加载,而 lazy-load-img.js 在初始化时候,刚好会执行 clearTimeout(this._timer); // 清除定时器 this._timer = true ,然后就出现了上面问题,无法热更新。

解决办法:

  1. lazy-load-img.jsthis._timer = true 改成 true 1 之外的其他值。

  2. 将初始化代码写在 setTimeout(() => {}, 0); 里面。

具体原因没去查看,大概估计跟 sockjs 中的定时器写法有关。

本文由 linx(544819896@qq.com) 创作,采用 CC BY 4.0 CN协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。本文链接为: https://blog.jijian.link/2021-03-11/vue-cli-hot/

如果您觉得文章不错,可以请我喝一杯咖啡!