VSCode的Debugger for Chrome已过时?了解内置调试器

11次阅读

vscode内置javaScript Debugger已替代Debugger for chrome插件,需启用官方调试器、将launch.json中”type”:”chrome”改为”pwa-chrome”、配置sourceMappathOverrides映射、确保sourcemap正确生成,并可选attach模式调试。

VSCode的Debugger for Chrome已过时?了解内置调试器

如果您在VSCode中尝试使用Debugger for Chrome插件进行前端调试,却发现插件未生效、断点无法命中或扩展市场显示“已弃用”,则可能是由于该插件已被官方整合或替代。以下是解决此问题的步骤:

本文运行环境:MacBook Pro M2,macos Sequoia。

一、切换至内置 javascript Debugger

VSCode 自 1.46 版本起已将 Debugger for Chrome 功能合并进官方内置调试器,不再依赖独立插件。该调试器以 JavaScript Debugger (Nightly) 或默认启用的 JavaScript Debugger 形式存在,支持 Chrome、edge 及其他基于 Chromium 的浏览器

1、打开 VSCode 扩展视图(快捷键 Cmd+Shift+X)。

2、搜索 JavaScript Debugger,确认其状态为“已启用”且来源为 microsoft

3、若存在已安装的 Debugger for Chrome 插件,点击其右下角“卸载”按钮并重启 VSCode。

二、验证 launch.json 中 type 字段是否适配新调试器

旧版 launch.json 使用 “type”: “chrome”,而内置调试器要求使用 “type”: “pwa-chrome”“type”: “pwa-msedge,否则调试会静默失败。

1、在项目根目录打开 .vscode/launch.json 文件。

2、将原配置中 “type”: “chrome” 替换为 “type”: “pwa-chrome”

3、确保 “request” 字段仍为 “launch”“attach”,其余字段如 “url”“webRoot” 保持不变。

三、检查 sourceMapPathOverrides 映射是否兼容 webpack/vite 构建路径

现代构建工具(如 Vite、vue CLI、Webpack 5+)生成的 sourcemap 路径与旧版 debugger 不一致,需显式声明映射规则,否则断点无法定位到原始源码。

1、在 launch.json 的对应 configuration 中添加 “sourceMapPathOverrides” 字段。

2、针对 Vite 项目,设置为:{“*”: “${webRoot}/*”}

3、针对 Webpack 项目,设置为:{“webpack:///src/*”: “${webRoot}/src/*”}

四、启用自动 sourcemap 识别并验证构建输出

内置调试器依赖有效的 sourcemap 文件(.js.map)与源码文件共存,若构建未生成或路径错误,调试将退化为压缩后代码断点。

1、检查项目开发服务器启动日志,确认输出中包含 “sourcemap: true” 或类似提示。

2、打开浏览器开发者工具 → Sources 面板 → 展开 localhost → 查看是否存在 src/ 目录及可展开的原始 .vue 或 .ts 文件。

3、若仅显示 bundle.js 且无 src 层级,说明 sourcemap 未正确注入,需修改 vite.config.ts 或 vue.config.js 中的 build.sourcemapdevtool 配置。

五、以调试模式启动 Chrome 并手动附加

当 launch 模式失效时,attach 模式可绕过 VSCode 启动流程,直接连接已运行的、启用远程调试端口的 Chrome 实例。

1、完全退出所有 Chrome 进程(包括后台进程)。

2、终端执行:open -a “google Chrome” –args –remote-debugging-port=9222(macOS)。

3、手动访问 http://localhost:3000(或对应开发地址)。

4、在 launch.json 中新增 configuration,“request”: “attach”“port”: 9222“webRoot”: “${workspaceFolder}”

text=ZqhQzanResources