在VS Code中启动Edge浏览器调试Vue项目
最近维护一个Vue 2.x的老项目,网上的资料介绍在VS中调试前端代码都是使用Chrome浏览器,但我没有装Chrome浏览器,想在VS Code中直接调试Vue代码,百度了很多资料,尝试了好几种方案,终于找到简单可行的方法。
根据微软官方的资料,如果想在VS Code中使用Edge浏览器进行调试,可以安装Microsoft Edge Tools for VS Code 插件,安装后可以打开一个跟VS Code集成的Edge浏览器,详细内容请参考官方链接:
在 Visual Studio Code 中调试 Microsoft Edge - Microsoft Edge Development | Microsoft Learn
DevTools 扩展的 launch.json 文件 - Microsoft Edge Development | Microsoft Learn
但是在VS Code中集成Edge进行调试对于电脑屏幕比较小的情况很不方便,而且还有一个问题就是这个集成的Edge浏览器打开我的Vue网站样式有问题,最后只好放弃该方案。
下面是安装Microsoft Edge Tools 后在launch.json文件里面添加的默认配置内容:
"configurations": [ { "type": "vscode-edge-devtools.debug", "request": "attach", "name": "Attach to Microsoft Edge and open the Edge DevTools", "url": "http://localhost:9528", "webRoot": "${workspaceFolder}" }, { "type": "vscode-edge-devtools.debug", "request": "launch", "name": "Launch Microsoft Edge and open the Edge DevTools", "url": "http://localhost:9528", "webRoot": "${workspaceFolder}" } ]
安装该工具后,再添加两个使用VS Code直接打开独立的Edge浏览器的配置:
{ "name": "Attach to Edge", "port": 9222, "request": "attach", "type": "msedge", "webRoot": "${workspaceFolder}" }, { "name": "Launch Edge", "request": "launch", "type": "msedge", "url": "http://localhost:9528", }, { "name": "chrome", "type": "chrome", "request": "launch", "url": "http://localhost:9528/", "webRoot": "${workspaceRoot}" },
保存launch.json文件,之后在VS Code的调试活动面板运行和调试下拉框里面选择 Lanuch Edge,点击按钮进行调试就可以打开一个Edge窗口。
注意启动调试之前,还需要修改Vue的调试工具支持 devtool: 'source-map',注意不同的Vue CLI版本devtool 设置所在的文件不同,详细内容请参考Vue官方文档:
在 VS Code 中调试 — Vue.js (vuejs.org)
按照上文内容介绍,的确可以打开Edge进行调试,但是无法正确命中断点,这是因为使用Vue CLI工程发布后的项目文件对JS进行了编译,浏览器里面运行的JS代码不是项目源码,所以需要映射要调试的代码路径,在launch.json里面增加 sourceMapPathOverrides 的设置,并且修改webRoot的设置,修改后的配置内容如下:
{ "name": "Launch Edge", "request": "launch", "type": "msedge", "url": "http://localhost:9528", "webRoot": "${workspaceFolder}/src", "sourceMapPathOverrides": {"webpack:///src/*": "${webRoot}/*" } },
sourceMapPathOverrides 的设置还可以指定更多的源码映射路径,比如下面的例子:
"configurations": [ { "type": "chrome", "request": "launch", "name": "Launch Chrome against localhost", "url": "http://localhost:8091/dist/#/", "webRoot": "${workspaceFolder}/src", "breakOnLoad": true, "sourceMapPathOverrides": { "webpack:///./*": "${webRoot}/*", "webpack:///src/*": "${webRoot}/*", "webpack:///*": "*", "webpack:///./~/*": "${webRoot}/node_modules/*", "meteor://app/*": "${webRoot}/*" } } ]
总结:
上面的过程关键点就是lauch.json的配置,用一张图片来总结,如下图。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库