browser preview插件本身不支持热重载,修改代码后预览页不自动刷新是正常现象;必须配合live server等外部服务,且browser-preview.starturl需指向http://localhost:xxx等运行中的本地服务,不能用file://路径。

Browser Preview插件的URL自动刷新失效怎么办
修改代码后预览页不自动刷新,多数情况是Live Server没启用或配置错位。Browser Preview本身不带热重载能力,它只负责渲染,刷新逻辑得靠外部服务配合。
-
browser-preview.startUrl必须指向一个正在运行的本地服务(如http://localhost:3000),不能是静态文件路径(如file:///xxx/index.html) - 确保你已安装并启用了
Live Server插件,且当前 HTML 文件是通过 Live Server 启动的——只有它暴露的 WebSocket 服务才能触发 Browser Preview 的 reload 事件 - 如果用的是 Vite/Next.js 等框架,
browser-preview.startUrl要和 dev server 实际监听地址一致,比如 Vite 默认是http://localhost:5173 - 检查浏览器控制台是否有
Failed to load resource: net::ERR_CONNECTION_REFUSED,这说明预览页根本连不上后端,先确认服务在运行
Debugger for Chrome 与 Browser Preview 共存时调试失败
两者都试图接管 Chrome 实例,容易冲突。Browser Preview 内部也基于 Chromium,但它的调试通道和 Debugger for Chrome 不互通,强行共用会导致断点不命中、控制台空白等现象。
- 不要同时启用
type: "chrome"和type: "browser-preview"两种调试配置;选其一即可 - 若需调试 JS,优先用
Debugger for Chrome:它支持完整的 CDP 协议,能读取 source map、停在原始 TS/JS 行,而 Browser Preview 的调试能力仅限基础 attach - 若只要看样式/结构变化,用 Browser Preview + Live Server 组合更轻量;它启动快、无调试开销,适合高频 CSS/HTML 迭代
- 注意
webRoot字段必须准确——Browser Preview 的调试配置里,webRoot指向的是你项目根目录,不是预览 iframe 的虚拟路径
vscode-web 集成后无法加载语言服务器(LSP)
VSCode Web 版默认不带任何语言服务器,vscode-web 包只是壳,所有 LSP 支持需手动注入。常见症状是 TypeScript/Python 文件里没有智能提示、跳转、类型检查。
- 必须显式加载对应语言的 Web 版 LSP 服务,例如 TypeScript 需引入
@vscode/vscode-web-languageclient并注册TypeScriptServer - Monaco Editor 原生支持语法高亮,但 LSP 功能(如 hover、completion)需要额外配置 worker 和 service URL,漏掉任一环节都会导致功能缺失
- 路径别写错:
workerUrl指向的是编译后的 Web Worker 脚本,不是源码;常见错误是把typescriptWorker.js放错位置或未部署到可访问路径 - 浏览器控制台若报
Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of "text/plain",说明服务器没配好.js的 MIME 类型
Agent 读取浏览器标签内容失败的权限限制
VS Code 1.119+ 的 Agent 浏览器联动功能依赖浏览器扩展授权,不是所有标签都能被读取——只有明确点击“共享”按钮的标签页才开放 DOM 访问权限,且仅限当前会话。
- 标签页右上角必须出现蓝色共享图标,并处于激活状态;关闭共享后 Agent 立即失去访问能力
- HTTPS 页面(含 localhost)默认允许,HTTP 页面需在 VS Code 设置中开启
agent.allowHttpSites,否则直接拒绝连接 - 跨域 iframe 内容不会被 Agent 解析,即使主页面已共享——它只读取顶层 document,不递归遍历子 frame
- 页面若使用 Shadow DOM 封装关键 UI(如自定义组件),Agent 默认无法穿透,需在组件内显式暴露
part或添加exportparts属性才能被识别











