浅析Visual Studio Code断点调试Vue
很多人习惯在Chrome的调试窗口中调试Vue代码,或者直接使用console.log来观察变量值,这是非常痛苦的一件事,需要同时打开至少3个窗体。个人还是更加习惯于断点调试。这篇文章将介绍如何配置VisualStudioCode和Chrome来完成直接在VSCode断点调试代码,并且在VSCode的调试窗口看到Chrome中console相同的值。
设置Chrome远程调试端口
首先我们需要在远程调试打开的状态下启动Chrome,这样VSCode才能attach到Chrome上:
Windows
- 右键点击Chrome的快捷方式图标,选择属性
- 在目标一栏,最后加上--remote-debugging-port=9222注意要用空格隔开
macOS
打开控制台执行:
/Applications/Google\Chrome.app/Contents/MacOS/Google\Chrome--remote-debugging-port=9222
Linux
打开控制台执行:
google-chrome--remote-debugging-port=9222
VisualStuidoCode安装插件
点击VisualStudioCode左侧边栏的扩展按钮,然后在搜索框输入DebuggerforChrome并安装插件,再输入,安装完成后点击reload重启VSCode
添加VisualStudioCode配置
- 点击VisualStudioCode左侧边栏的调试按钮,在弹出的调试配置窗口中点击设置小齿轮,然后选择chrome,VSCode将会在工作区根目录生成.vscode目录,里面会有一个lanch.json文件并会自动打开
- 用下面的配置文件覆盖自动生成的lanch.json文件内容。
{ //UseIntelliSensetolearnaboutpossibleattributes. //Hovertoviewdescriptionsofexistingattributes. //Formoreinformation,visit:https://go.microsoft.com/fwlink/?linkid=830387 "version":"0.2.0", "configurations":[ { "type":"chrome", "request":"attach", "name":"AttachtoChrome", "port":9222, "webRoot":"${workspaceRoot}/src", "url":"http://localhost:8080/#/", "sourceMaps":true, "sourceMapPathOverrides":{ "webpack:///src/*":"${webRoot}/*" } } ] }
修改webpack的sourcemap
如果你是基于webpack打包的vue项目,可能会存在断点不匹配的问题,还需要做些修改:
- 打开根目录下的config目录下的index.js文件
- 将dev节点下的devtool值改为'eval-source-map'
- 将dev节点下的cacheBusting值改为false
开始调试吧
一切具备了,现在验收成果了
- 通过第一步的方式以远程调试打开的方式打开Chrome
- 在vue项目中执行npmrundev以调试方式启动项目
- 点击VSCode左侧边栏的调试按钮,选择AttachtoChrome并点击绿色开始按钮,正常情况下就会出现调试控制条。
- 现在就可以在.vue文件的js代码中打断点进行调试了。