使用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加强的经典分页实例
Mar 15 Javascript
使用typeof判断function是否存在于上下文
Aug 14 Javascript
JavaScript实现弹出子窗口并传值给父窗口
Dec 18 Javascript
JavaScript实现对下拉列表值进行排序的方法
Jul 15 Javascript
jquery实现动静态条形统计图
Aug 17 Javascript
jquery在ie7下选择器的问题导致append失效的解决方法
Jan 10 Javascript
提高Web性能的前端优化技巧总结
Feb 27 Javascript
node使用Koa2搭建web项目的方法
Oct 17 Javascript
浅谈js闭包理解
Mar 28 Javascript
vue中node_modules中第三方模块的修改使用详解
May 31 Javascript
javascript操作元素的常见方法小结
Nov 13 Javascript
Vue使用Three.js加载glTF模型的方法详解
Jun 14 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下检测字符串是否是utf8编码的代码
2008/06/28 PHP
Memcache 在PHP中的使用技巧
2010/02/08 PHP
在chrome中window.onload事件的一些问题
2010/03/01 Javascript
jQuery 类twitter的文本字数限制带提示效果插件
2010/04/16 Javascript
JS实现FLASH幻灯片图片切换效果的方法
2015/03/04 Javascript
使用coffeescript编写node.js项目的方法汇总
2015/08/05 Javascript
JavaScript 性能优化小结
2015/10/12 Javascript
ionic组件ion-tabs选项卡切换效果实例
2016/08/27 Javascript
jQuery操作之效果详解
2017/05/19 jQuery
angularjs实现上拉加载和下拉刷新数据功能
2017/06/12 Javascript
jQuery判断网页是否已经滚动到浏览器底部的实现方法
2017/10/27 jQuery
angularJS1 url中携带参数的获取方法
2018/10/09 Javascript
vue代码分割的实现(codesplit)
2018/11/13 Javascript
微信小程序实现下拉刷新动画
2019/06/21 Javascript
vue封装自定义指令之动态显示title操作(溢出显示,不溢出不显示)
2020/11/12 Javascript
[46:40]VGJ.T vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python可跨平台实现获取按键的方法
2015/03/05 Python
200行自定义python异步非阻塞Web框架
2017/03/15 Python
Python 的类、继承和多态详解
2017/07/16 Python
Python OpenCV对本地视频文件进行分帧保存的实例
2019/01/08 Python
详解利用Python scipy.signal.filtfilt() 实现信号滤波
2019/06/05 Python
使用Python实现跳一跳自动跳跃功能
2019/07/10 Python
Django中的FBV和CBV用法详解
2019/09/15 Python
解决Python二维数组赋值问题
2019/11/28 Python
Python StringIO如何在内存中读写str
2020/01/07 Python
tensorflow中tf.reduce_mean函数的使用
2020/04/19 Python
PythonPC客户端自动化实现原理(pywinauto)
2020/05/28 Python
python能否java成为主流语言吗
2020/06/22 Python
python实现图片转字符画
2021/02/19 Python
html5-canvas中使用clip抠出一个区域的示例代码
2018/05/25 HTML / CSS
协议书样本
2014/04/23 职场文书
2015年环保局工作总结
2015/05/22 职场文书
大学生入党自传2015
2015/06/26 职场文书
Pytest之测试命名规则的使用
2021/04/16 Python
PHP获取学生成绩的方法
2021/11/17 PHP
CSS 鼠标点击拖拽效果的实现代码
2022/12/24 HTML / CSS