使用VScode 插件debugger for chrome 调试react源码的方法


Posted in Javascript onSeptember 13, 2019

代码调试,是我们前端日常工作中不可或缺的能力了吧!

在面向dom开发的时代,我们开发时直接在chrome里打断点是很方便的。
但是,当我们面向组件开发时(react),浏览器拿到的是我们编译过后的代码,还想在浏览器里打断点几乎是不可能的了。

场景

那怎么办,方法总是比困难多!愚蠢的我想到了console/debugger!!一直在使用,虽然很不方便(打印太多实在太乱!上线还要配置删除掉),但是我竟然使用了很久(这真是一个糟糕的编码习惯吧)。直到今天,我想研究一下react源码,需要断点的地方有很多,不可能在手动console/debugger了!!我才想到我为什么不用浏览器debugger?

Debugger for Chrome

因为我使用的编译器是VS code,机智的我终于开窍了!找来了 Debugger for Chrome插件。

使用VScode 插件debugger for chrome 调试react源码的方法

但是纯英文的文档不太友好,虽然我英语六级也是搞了很久才弄好,下面就介绍记录一下mac系统下的使用方法吧。完整文档需要可以自己看文档

1、加载插件

使用VScode 插件debugger for chrome 调试react源码的方法

2、配置插件

点击小虫子;选择chrome;

使用VScode 插件debugger for chrome 调试react源码的方法

然后点击小轮子,打开launch.json文件如下:

{
 // 使用 IntelliSense 了解相关属性。 
 // 悬停以查看现有属性的描述。
 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
 "version": "0.2.0",
 "configurations": [

  {
   "type": "chrome",
   "request": "launch", //launch / attach 两种方式;这里使用launch
   "name": "Launch Chrome against localhost",//开心的设置个名字
   "url": "http://localhost:9000",//项目地址
   "webRoot": "${workspaceFolder}/react-demo/"
   //这一块设置时要注意!webRoot指定网络服务器根目录的工作区绝对路径。
   ${workspaceFolder}应该时表示编辑器里的根目录,我的项目是react-demo,
   所以选择webRoot修改如上,具体路径还跟webpack配置的资源根目录也有关系

  }
  //还有很多可以配置的属性,可以通过上面文档查看
 ]
}

3、开始调试

点击小按钮,就开始调试模式了;像下面就能在我们的源代码打断点;

使用VScode 插件debugger for chrome 调试react源码的方法

开始调试后,多出来一个小窗,可以控制断点走向,以及结束暂停、调试。下方会显示断点列表。

使用VScode 插件debugger for chrome 调试react源码的方法

同时,会为我们打开我们配置的url页面;

使用VScode 插件debugger for chrome 调试react源码的方法

还可以看到调用堆栈,和打印台,可以说十分方便

使用VScode 插件debugger for chrome 调试react源码的方法

OK到这里我们的react调试配置已经可以使用了,不用在手动写debug了!可以开始愉快的搬砖了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS图片预加载 JS实现图片预加载应用
Dec 03 Javascript
Jquery图片滚动与幻灯片的实例代码
Apr 08 Javascript
通过Jquery的Ajax方法读取将table转换为Json
May 31 Javascript
JS替换字符串中字符即替换全部而不是第一个
Jun 04 Javascript
jQuery中ajax的get()方法用法实例
Dec 26 Javascript
jQuery实现html表格动态添加新行的方法
May 28 Javascript
详解JS中定时器setInterval和setTImeout的this指向问题
Jan 06 Javascript
jQuery结合jQuery.cookie.js插件实现换肤功能示例
Oct 14 jQuery
js正则表达式校验指定字符串的方法
Jul 23 Javascript
浅谈Angular7 项目开发总结
Dec 19 Javascript
详解在网页上通过JS实现文本的语音朗读
Mar 28 Javascript
vue实现防抖的实例代码
Jan 11 Vue.js
layui实现把数据表格时间戳转换为时间格式的例子
Sep 12 #Javascript
深入了解JavaScript 防抖和节流
Sep 12 #Javascript
layer.msg()去掉默认时间,实现手动关闭的方法
Sep 12 #Javascript
使用layer.msg 时间设置不起作用的解决方法
Sep 12 #Javascript
浅谈bootstrap layer.open中end的使用方法
Sep 12 #Javascript
layer iframe 设置关闭按钮的方法
Sep 12 #Javascript
改变layer confirm弹窗按钮的颜色方法
Sep 12 #Javascript
You might like
Cannot modify header information错误解决方法
2008/10/08 PHP
PHP中使用foreach和引用导致程序BUG的问题介绍
2012/09/05 PHP
PHP无限分类(树形类)的深入分析
2013/06/02 PHP
php实现插入数组但不影响原有顺序的方法
2015/03/27 PHP
laravel实现查询最后执行的一条sql语句的方法
2019/10/09 PHP
laravel按天、按小时,查询数据的实例
2019/10/09 PHP
PHP设计模式之数据访问对象模式(DAO)原理与用法实例分析
2019/12/12 PHP
JQuery动态创建DOM、表单元素的实现代码
2011/08/09 Javascript
JavaScript格式化日期时间的方法和自定义格式化函数示例
2014/04/04 Javascript
标题过长使用javascript按字节截取字符串
2014/04/24 Javascript
jquery $.trim()方法使用介绍
2014/05/21 Javascript
轻量级javascript 框架Backbone使用指南
2015/07/24 Javascript
JavaScript预解析及相关技巧分析
2016/04/21 Javascript
JS异步文件上传(兼容IE8+)
2017/04/02 Javascript
Angualrjs 表单验证的两种方式(失去焦点验证和点击提交验证)
2017/05/09 Javascript
详解node.js中的npm和webpack配置方法
2018/01/21 Javascript
详解小程序原生使用ES7 async/await语法
2018/08/06 Javascript
用原生 JS 实现 innerHTML 功能实例详解
2019/04/03 Javascript
使用vue-cli4.0快速搭建一个项目的方法步骤
2019/12/04 Javascript
JavaScript 引用类型实例详解【数组、对象、严格模式等】
2020/05/13 Javascript
Python正则表达式使用范例分享
2016/12/04 Python
windows下安装Python的XlsxWriter模块方法
2018/05/03 Python
详谈Python 窗体(tkinter)表格数据(Treeview)
2018/10/11 Python
python引入不同文件夹下的自定义模块方法
2018/10/27 Python
Python爬虫学习之翻译小程序
2019/07/30 Python
python在OpenCV里实现投影变换效果
2019/08/30 Python
使用tensorflow根据输入更改tensor shape
2020/06/23 Python
Jupyter安装拓展nbextensions及解决官网下载慢的问题
2021/03/03 Python
css3学习系列之移动属性详解
2017/07/04 HTML / CSS
JACK & JONES瑞典官方网站:杰克琼斯欧式风格男装
2017/12/23 全球购物
母亲80寿诞答谢词
2014/01/16 职场文书
公司年会搞笑主持词
2014/03/24 职场文书
小学思想品德教学反思
2016/02/24 职场文书
Java基础之详解HashSet的使用方法
2021/06/30 Java/Android
springboot临时文件存储目录配置方式
2021/07/01 Java/Android
nginx代理实现静态资源访问的示例代码
2022/07/07 Servers