使用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 相关文章推荐
JavaScript高级程序设计 DOM学习笔记
Sep 10 Javascript
jQuery中bind与live的用法及区别小结
Jan 27 Javascript
AngularJS入门教程之更多模板详解
Aug 19 Javascript
纯javascript版日历控件
Nov 24 Javascript
最好用的Bootstrap fileinput.js文件上传组件
Dec 12 Javascript
JS轮播图中缓动函数的封装
Nov 25 Javascript
微信JS-SDK选取手机照片上传功能
Apr 21 Javascript
初探Vue3.0 中的一大亮点Proxy的使用
Dec 06 Javascript
JS事件绑定的常用方式实例总结
Mar 02 Javascript
微信小程序实现分享商品海报功能
Sep 30 Javascript
JavaScript监听触摸事件代码实例
Dec 30 Javascript
elementui的el-popover修改样式不生效的解决
Jun 30 Javascript
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
php中explode与split的区别介绍
2012/10/03 PHP
php提取身份证号码中的生日日期以及验证是否为成年人的函数
2015/09/29 PHP
PHP的全局错误处理详解
2016/04/25 PHP
YII中Ueditor富文本编辑器文件和图片上传的配置图文教程
2017/03/15 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
2020/04/07 PHP
addRule在firefox下的兼容写法
2006/11/30 Javascript
jQuery ajax cache缓存问题
2010/07/01 Javascript
Javascript 自适应高度的Tab选项卡
2011/04/05 Javascript
自定义jQuery选项卡插件实例
2013/03/27 Javascript
Javascript变量的作用域和作用域链详解
2015/04/02 Javascript
快速掌握WordPress中加载JavaScript脚本的方法
2015/12/17 Javascript
[原创]jQuery常用的4种加载方式分析
2016/07/25 Javascript
vue2 中如何实现动态表单增删改查实例
2017/06/09 Javascript
浅谈webpack对样式的处理
2018/01/05 Javascript
Vuex中mutations与actions的区别详解
2018/03/01 Javascript
js合并两个数组生成合并后的key:value数组
2018/05/09 Javascript
JS实现HTML页面中动态显示当前时间完整示例
2018/07/30 Javascript
详解vue2.6插槽更新v-slot用法总结
2019/03/09 Javascript
Vue项目使用localStorage+Vuex保存用户登录信息
2019/05/27 Javascript
Taro UI框架开发小程序实现左滑喜欢右滑不喜欢效果的示例代码
2020/05/18 Javascript
详解vue3.0 diff算法的使用(超详细)
2020/07/01 Javascript
[01:02:47]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
python 换位密码算法的实例详解
2017/07/19 Python
python 获取毫秒数,计算调用时长的方法
2019/02/20 Python
python在回调函数中获取返回值的方法
2019/02/22 Python
python多线程下信号处理程序示例
2019/05/31 Python
python3实现二叉树的遍历与递归算法解析(小结)
2019/07/03 Python
python实现飞行棋游戏
2020/02/05 Python
Pytorch转tflite方式
2020/05/25 Python
html5 Canvas画图教程(11)—使用lineTo/arc/bezierCurveTo画椭圆形
2013/01/09 HTML / CSS
html5的pushstate以及监听浏览器返回事件的实现
2020/08/11 HTML / CSS
Canvas在超级玛丽游戏中的应用详解
2021/02/06 HTML / CSS
Vince官网:全球著名设计师品牌,休闲而优雅的服饰
2017/01/15 全球购物
幼儿园教师的考核评语
2014/04/18 职场文书
建筑工地门卫岗位职责
2014/04/30 职场文书
招标授权委托书样本
2014/09/23 职场文书