VSCode中Live-server报错:Uncaught (in promise) Error连接问题求助
你遇到的报错Uncaught (in promise) Error: Could not establish connection. Receiving end does not exist,是Chrome进程管理机制和live-server的WebSocket连接逻辑冲突导致的,以下是可行的解决办法:
关闭Chrome后台应用保留设置
打开Chrome设置 → 系统 → 关闭「继续运行后台应用,即使Chrome已关闭」。Chrome会在页面闲置一段时间后冻结旧进程,live-server重载时仍尝试和旧进程的WebSocket通信,就会触发报错,关闭这个设置能让旧进程及时被清理。修改live-server的启动参数或源码
- 启动时添加等待参数:
live-server --wait=1000,缩短重载等待时间,减少旧进程残留的概率; - 若要彻底解决,可修改
node_modules/live-server/live-server.js里的心跳配置,找到heartbeatInterval相关代码,把默认值从10000(10秒)改为5000(5秒),让live-server更快检测到旧连接失效并重建。
- 启动时添加等待参数:
排查Chrome扩展干扰
开启Chrome无痕模式测试,若无痕模式下报错消失,说明是扩展导致的。逐个启用扩展并测试,找出干扰的扩展(通常是脚本注入、网络拦截类的扩展)并禁用。替换为其他热重载工具
改用browser-sync,启动命令:browser-sync start --server --files "**/*",它的连接管理逻辑更适配Chrome,基本不会出现这类进程连接问题。手动清理闲置进程
重载前按Shift+Esc打开Chrome任务管理器,关闭所有闲置的标签页进程,再保存文件触发重载,能避免旧进程干扰。
核心原因:live-server通过WebSocket和页面进程维持热重载连接,当间隔10-15秒重载时,Chrome已将旧页面进程标记为闲置并冻结,live-server无法和失效的进程建立连接,从而抛出报错。
内容的提问来源于stack exchange,提问作者user3215000

