欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

浅析Visual Studio Code断点调试Vue

程序员文章站 2022-03-20 15:01:22
很多人习惯在 chrome 的调试窗口中调试 vue 代码, 或者直接使用 console.log 来观察变量值, 这是非常痛苦的一件事,需要同时打开至少 3 个窗体。个人...

很多人习惯在 chrome 的调试窗口中调试 vue 代码, 或者直接使用 console.log 来观察变量值, 这是非常痛苦的一件事,需要同时打开至少 3 个窗体。个人还是更加习惯于断点调试。这篇文章将介绍如何配置 visual studio code 和 chrome 来完成直接在 vs code 断点调试代码, 并且在vs code的调试窗口看到chrome中console相同的值。

设置 chrome 远程调试端口

首先我们需要在远程调试打开的状态下启动 chrome, 这样 vs code 才能 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

visual stuido code 安装插件

点击 visual studio code 左侧边栏的扩展按钮, 然后在搜索框输入debugger for chrome并安装插件,再输入,安装完成后点击 reload 重启 vs code

添加 visual studio code 配置

  • 点击 visual studio code 左侧边栏的 调试 按钮, 在弹出的调试配置窗口中点击 设置 小齿轮, 然后选择 chrome, vs code 将会在工作区根目录生成.vscode 目录,里面会有一个 lanch.json 文件并会自动打开
  • 用下面的配置文件覆盖自动生成的 lanch.json 文件内容。
{
 // use intellisense to learn about possible attributes.
 // hover to view descriptions of existing attributes.
 // for more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
 "version": "0.2.0",
 "configurations": [
  {
   "type": "chrome",
   "request": "attach",
   "name": "attach to chrome",
   "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 项目中执行npm run dev以调试方式启动项目
  • 点击 vs code 左侧边栏的调试按钮,选择 attach to chrome 并点击绿色开始按钮,正常情况下就会出现调试控制条。
  • 现在就可以在.vue文件的js代码中打断点进行调试了。