使用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 相关文章推荐
jQuery Study Notes学习笔记 (二)
Aug 04 Javascript
javascript天然的迭代器
Oct 29 Javascript
Prototype源码浅析 Enumerable部分(二)
Jan 18 Javascript
javascript中expression的用法整理
May 13 Javascript
jQuery实现的网页竖向菜单效果代码
Aug 26 Javascript
jquery过滤特殊字符',防sql注入的实现方法
Aug 17 Javascript
jQuery中Find选择器用法示例
Sep 21 Javascript
JavaScript解析任意形式的json树型结构展示
Jul 23 Javascript
微信小程序 五星评分的实现实例
Aug 04 Javascript
用node-webkit把web应用打包成桌面应用(windows环境)
Feb 01 Javascript
Webpack中雪碧图插件使用详解
May 25 Javascript
JS栈stack类的实现与使用方法示例
Jan 31 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中大括号'{}'用法实例总结
2017/02/08 PHP
PHP通过GD库实现验证码功能示例
2019/02/23 PHP
PHP从零开始打造自己的MVC框架之入口文件实现方法详解
2019/06/03 PHP
让div层随鼠标移动的实现代码 ie ff
2009/12/18 Javascript
jquery封装的对话框简单实现
2013/07/21 Javascript
纯js代码制作的网页时钟特效【附实例】
2016/03/30 Javascript
详解js中的apply与call的用法
2016/07/30 Javascript
关于原生js中bind函数的简单实现
2016/08/10 Javascript
使用 NodeJS+Express 开发服务端的简单介绍
2017/04/07 NodeJs
详解Node.js 命令行程序开发教程
2017/06/07 Javascript
js实现城市级联菜单的2种方法
2017/06/23 Javascript
React中jquery引用的实现方法
2017/09/12 jQuery
原生JS实现简单的倒计时功能示例
2018/08/30 Javascript
js获取浏览器地址(获取第1个斜杠后的内容)
2019/09/03 Javascript
js实现单元格拖拽效果
2020/02/10 Javascript
解决vue使用vant下拉框van-dropdown-item 绑定title值不变问题
2020/08/05 Javascript
js实现数字跳动到指定数字
2020/08/25 Javascript
[04:16]DOTA2英雄梦之声_第09期_斧王
2014/06/21 DOTA
python写入并获取剪切板内容的实例
2018/05/31 Python
关于不懂Chromedriver如何配置环境变量问题解决方法
2019/06/12 Python
Python实现FTP文件传输的实例
2019/07/07 Python
对python中基于tcp协议的通信(数据传输)实例讲解
2019/07/22 Python
python实现淘宝购物系统
2019/10/25 Python
Python通过正则库爬取淘宝商品信息代码实例
2020/03/02 Python
3分钟看懂Python后端必须知道的Django的信号机制
2020/07/26 Python
PyTorch中的拷贝与就地操作详解
2020/12/09 Python
HTML5 新标签全部总汇(推荐)
2016/06/13 HTML / CSS
Aosom西班牙:家具在线商店
2020/06/11 全球购物
LUISAVIAROMA德国官网:时尚奢侈品牌购物网站
2020/11/12 全球购物
1亿有多大教学反思
2014/05/01 职场文书
校庆口号
2014/06/20 职场文书
学校总务处领导班子民主生活会对照检查材料思想汇报
2014/09/27 职场文书
农村文化建设标语
2014/10/07 职场文书
2015年学校总务处工作总结
2015/05/19 职场文书
2015年重阳节主持词
2015/07/04 职场文书
装修安全责任协议书
2016/03/22 职场文书