vscode本身不启动浏览器,所有打开行为均依赖插件:live server起http服务并默认调用系统默认浏览器,其liveserver.settings.custombrowser仅影响“open in other browser”列表;open in browser直接调用系统命令打开file://,完全遵循系统默认设置;调试则由launch.json中type或browser字段控制,与右键操作无关。

VSCode 本身不启动浏览器,所有“打开”“调试”“切换浏览器”的行为,都依赖插件对系统调用的封装。关键不是选哪个插件,而是搞清每个插件管哪一段:是直接唤起 file://、起本地服务、还是接管调试协议。
Live Server 插件只负责起服务,不决定浏览器类型
它默认在 http://127.0.0.1:5500/xxx.html 启一个轻量 HTTP 服务器,然后调用系统默认浏览器打开该地址。你改不了它“用哪个浏览器”,除非改系统默认设置。
-
liveServer.settings.CustomBrowser看似能指定浏览器,但实际只影响右键菜单里“Open in Other Browser”的选项列表,不改变 Go Live 的默认行为 - 如果填了绝对路径(比如
C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe),必须确保路径完全正确——空格、括号、扩展名缺一不可,否则点击无反应 - 它不支持
file://协议,所以无法用于纯静态文件调试(如需读取本地 JSON、用 ES Module)
Open in Browser 插件才真正控制“用哪个浏览器打开 file://”
它不启服务,只是调用系统命令 open(macOS)、start(Windows)或 xdg-open(Linux)打开当前 HTML 文件,因此完全受系统默认浏览器控制。
- 右键“Open in Default Browser”一定走系统设置,和 VS Code 无关;验证方式:在 Finder / 文件资源管理器中双击 .html 文件,看是否用目标浏览器打开
- “Open in Other Browser”首次使用会弹出列表,选完后插件会记住,后续直接调用对应浏览器二进制(如
/Applications/Google Chrome.app/Contents/MacOS/Google Chrome) - Mac 用户常卡在这里:系统设置里没真把 Chrome 设为默认,只是日常用它——必须进 System Settings → Desktop & Dock → Default Web Browser 手动选中
launch.json 调试配置只对 F5 启动生效,和右键无关
当你按 F5 或点“运行 → 启动调试”,VS Code 会读 .vscode/launch.json,此时浏览器选择权完全移交给了调试器扩展(如 Debugger for Edge)。
-
"type": "pwa-edge"表示用 Edge 调试;换成"pwa-chrome"或"pwa-firefox"即可切换,但 Firefox 需额外装 Debugger for Firefox 并开启devtools.debugger.remote-enabled - 路径硬编码风险高:
"runtimeExecutable": "C:\Program Files\Microsoft\Edge\Application\msedge.exe"中反斜杠必须双写,且路径不能含中文或空格(否则启动失败) - 这个配置对右键“Open with Live Server”或“Open in Default Browser”完全无效——它们压根不读 launch.json
最容易被忽略的是:三个插件(Live Server、Open in Browser、Debugger for XXX)可以共存,但它们互不通信。你改了 Open in Browser 的默认浏览器,Live Server 的 Go Live 还是走系统默认;你配好了 launch.json,右键菜单也不会变。想精准控制,得先确认你此刻用的是哪条路径——是预览?是热更新?还是断点调试?











