浅析Visual Studio Code断点调试Vue


Posted in Javascript onFebruary 27, 2018

很多人习惯在 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代码中打断点进行调试了。
Javascript 相关文章推荐
javascript与CSS复习(三)
Jun 29 Javascript
js中的事件捕捉模型与冒泡模型实例分析
Jan 10 Javascript
Node.js中的缓冲与流模块详细介绍
Feb 11 Javascript
【JS+CSS3】实现带预览图幻灯片效果的示例代码
Mar 17 Javascript
老生常谈Javascript中的原型和this指针
Oct 09 Javascript
Bootstrap源码解读按钮(5)
Dec 23 Javascript
基于node搭建服务器,写接口,调接口,跨域的实例
May 13 Javascript
vue内置组件transition简单原理图文详解(小结)
Jul 12 Javascript
详解html-webpack-plugin插件(用法总结)
Sep 12 Javascript
快速搭建Node.js(Express)用户注册、登录以及授权的方法
May 09 Javascript
Servlet返回的数据js解析2种方法
Dec 12 Javascript
使用Mock.js生成前端测试数据
Dec 13 Javascript
angularJs 表格添加删除修改查询方法
Feb 27 #Javascript
ExtJs整合Echarts的示例代码
Feb 27 #Javascript
angularJS实现动态添加,删除div方法
Feb 27 #Javascript
浅谈React中的元素、组件、实例和节点
Feb 27 #Javascript
AngularJS动态添加数据并删除的实例
Feb 27 #Javascript
JS严格模式知识点总结
Feb 27 #Javascript
总结js函数相关知识点
Feb 27 #Javascript
You might like
php 获取可变函数参数的函数
2009/08/26 PHP
《PHP编程最快明白》第八讲:php启发和小结
2010/11/01 PHP
PHP屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
2013/03/06 PHP
Sublime里直接运行PHP配置方法
2014/11/28 PHP
Ubuntu 16.04中Laravel5.4升级到5.6的步骤
2018/12/07 PHP
参考:关于Javascript中实现暂停的几篇文章
2007/03/04 Javascript
动态控制Table的js代码
2007/03/07 Javascript
jquery通过select列表选择框对表格数据进行过滤示例
2014/05/07 Javascript
require.js深入了解 require.js特性介绍
2014/09/04 Javascript
jQuery手机拨号界面特效代码分享
2015/08/27 Javascript
Angularjs中使用Filters详解
2016/03/11 Javascript
jQuery判断元素是否显示 是否隐藏的简单实现代码
2016/05/19 Javascript
JS控制页面跳转时未请求要跳转的地址怎么回事
2016/10/14 Javascript
jQuery插件FusionCharts实现的MSBar3D图效果示例【附demo源码】
2017/03/23 jQuery
JS实现按钮颜色切换效果
2020/09/05 Javascript
基于Vue的SPA动态修改页面title的方法(推荐)
2018/01/02 Javascript
vue 实现复制内容到粘贴板clipboard的方法
2018/03/17 Javascript
JS将网址url转化为JSON格式的方法
2018/07/02 Javascript
jQuery阻止事件冒泡实例分析
2018/07/03 jQuery
微信小程序实现之手势锁功能实例代码
2018/07/19 Javascript
Makefile/cmake/node-gyp中区分判断不同平台的方法
2018/12/18 Javascript
详解如何搭建mpvue框架搭配vant组件库的小程序项目
2019/05/16 Javascript
微信小程序实现原生步骤条
2019/07/25 Javascript
JS数组splice操作实例分析
2019/10/12 Javascript
vue $set 给数据赋值的实例
2019/11/09 Javascript
[01:15:00]LGD vs Mineski Supermajor 胜者组 BO3 第一场 6.5
2018/06/06 DOTA
python进阶教程之词典、字典、dict
2014/08/29 Python
Python的ORM框架中SQLAlchemy库的查询操作的教程
2015/04/25 Python
Django 路由控制的实现
2019/07/17 Python
tensorflow下的图片标准化函数per_image_standardization用法
2020/06/30 Python
利用CSS3实现进度条的两种姿势详解
2017/03/21 HTML / CSS
HTML5 Canvas玩转酷炫大波浪进度图效果实例(附demo)
2016/12/14 HTML / CSS
美国领先的家庭智能音响系统品牌:Sonos
2018/07/20 全球购物
会计岗位职责
2013/11/08 职场文书
2014年政风行风自查自纠报告
2014/10/21 职场文书
Python中字符串对象语法分享
2022/02/24 Python