使用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 相关文章推荐
在线编辑器的实现原理(兼容IE和FireFox)
Mar 09 Javascript
jquery cookie插件代码类
May 26 Javascript
js TextArea的选中区域处理
Dec 28 Javascript
javascript中的void运算符语法及使用介绍
Mar 10 Javascript
现如今最流行的JavaScript代码规范
Mar 08 Javascript
JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
Aug 16 Javascript
利用vue-router实现二级菜单内容转换
Nov 30 Javascript
jQuery无刷新上传之uploadify简单代码
Jan 17 Javascript
node.js利用mongoose获取mongodb数据的格式化问题详解
Oct 06 Javascript
详解滑动穿透(锁body)终极探索
Apr 16 Javascript
JavaScript强制类型转换和隐式类型转换操作示例
May 01 Javascript
vue 实现购物车总价计算
Nov 06 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编程开发“虚拟域名”系统
2006/10/09 PHP
php二维数组排序详解
2013/11/06 PHP
php获取表单中多个同名input元素的值
2014/03/20 PHP
PHP正则替换函数preg_replace()报错:Notice Use of undefined constant的解决方法分析
2017/02/04 PHP
深入浅析安装PhpStorm并激活的步骤详解
2020/09/17 PHP
在IE6下发生Internet Explorer cannot open the Internet site错误
2010/06/21 Javascript
jquery 操作表格实现代码(多种操作打包)
2011/03/20 Javascript
javascript时间自动刷新实现原理与步骤
2013/01/06 Javascript
Mac地址验证的javascript代码
2013/11/09 Javascript
JS小功能(列表页面隔行变色)简单实现
2013/11/28 Javascript
JavaScript暂停和继续定时器的实现方法
2016/07/18 Javascript
原生node.js案例--前后台交互
2017/02/20 Javascript
快速解决Vue项目在IE浏览器中显示空白的问题
2018/09/04 Javascript
Puppeteer 爬取动态生成的网页实战
2018/11/14 Javascript
JavaScript实现无限级递归树的示例代码
2019/03/29 Javascript
vue下使用nginx刷新页面404的问题解决
2019/08/02 Javascript
jquery制作的移动端购物车效果完整示例
2020/02/24 jQuery
k8s node节点重新加入master集群的实现
2021/02/22 Javascript
python连接MySQL、MongoDB、Redis、memcache等数据库的方法
2013/11/15 Python
python开发之函数定义实例分析
2015/11/12 Python
python在不同层级目录import模块的方法
2016/01/31 Python
python装饰器常见使用方法分析
2019/06/26 Python
在Python中构建增广矩阵的实现方法
2019/07/01 Python
python实现身份证实名认证的方法实例
2019/11/08 Python
Python2与Python3关于字符串编码处理的差别总结
2020/09/07 Python
关于老式浏览器兼容HTML5和CSS3的问题
2016/06/01 HTML / CSS
汉森批发:Hansen Wholesale
2018/05/24 全球购物
澳大利亚头发和美容产品购物网站:OZ Hair & Beauty
2020/03/27 全球购物
蛋糕店的商业计划书范文
2014/01/27 职场文书
消防安全承诺书
2014/05/22 职场文书
北京离婚协议书范文2014
2014/09/29 职场文书
农村文化建设标语
2014/10/07 职场文书
运动会1000米加油稿
2015/07/21 职场文书
《秦兵马俑》教学反思
2016/02/24 职场文书
农村房屋租赁合同(范本)
2019/07/23 职场文书
Python re.sub 反向引用的实现
2021/07/07 Python