首页 开发工具 VSCode 怎么使用 VSCode 调试浏览器上的的 JS 代码

怎么使用 VSCode 调试浏览器上的的 JS 代码

Sep 26, 2021 am 11:15 AM
javascript vscode

怎么使用 VSCode 调试浏览器上的的 JS 代码?下面本篇文章给大家介绍一下用 VSCode 调试网页的 JS 代码的方法,希望对大家有所帮助!

怎么使用 VSCode 调试浏览器上的的 JS 代码

相比纯看代码来说,我更推荐结合 debugger 来看,它可以让我们看到代码实际的执行路线,每一个变量的变化。可以大段大段代码跳着看,也可以对某段逻辑一步步的执行来看。【推荐学习:《vscode教程》】

Javascript 代码主要有两个运行环境,一个是 Node.js ,一个是浏览器。一般来说,调试 Node.js 上跑的 JS 代码我会用 VSCode 的 debugger,调试浏览器上的 JS 代码我会用 chrome devtools。直到有一天我发现 VSCode 也能调试浏览器上的的 JS 代码,试了一下,是真的香。

具体有多香呢?我们一起来看一下。

在项目的根目录下有个 .vscode/launch.json 的文件,保存了 VSCode 的调试配置。

我们点击 Add Configuration 按钮添加一个调试 chrome 的配置。

怎么使用 VSCode 调试浏览器上的的 JS 代码

配置是这样的:

怎么使用 VSCode 调试浏览器上的的 JS 代码

url 是网页的地址,我们可以把本地的 dev server 跑起来,然后把地址填在这里。

然后点击 debug 运行:

怎么使用 VSCode 调试浏览器上的的 JS 代码

VSCode 就会起一个 Chrome 浏览器加载该网页,并且在我们的断点处断住。会在左侧面板显示调用栈、作用域的变量等。

最底层当然是 webpack 的入口,我们可以单步调试 webpack 的 runtime 部分。

怎么使用 VSCode 调试浏览器上的的 JS 代码

也可以看下从 render 的流程,比如 ReactDOM.render 到渲染到某个子组件,中间都做了什么。

怎么使用 VSCode 调试浏览器上的的 JS 代码

或者看下某个组件的 hooks 的值是怎么变化的(hooks 的值都存在组件的 fiberNode 的 memerizedState 属性上):

怎么使用 VSCode 调试浏览器上的的 JS 代码

可以看到,调试 webpack runtime 代码,或者调试 React 源码、或者是业务代码,都很方便。

可能你会说,这个在 chrome devtools 里也可以啊,有啥特别的地方么?

确实,chrome devtools 也能做到一样的事情,但 VSCode 来调试网页代码有两个主要的好处:

  1. 在编辑器里面给代码打断点,还可以边调试边改代码。

  2. 调试 Node.js 的代码和调试网页的代码用同样的工具,经验可以复用,体验也一致。

对于第一点,chrome devtools 的 sources 其实也可以修改代码然后保存,但是毕竟不是专门的编辑器,用它来写代码比较别扭。我个人是比较习惯边 debug 边改代码的,这点 VSCode 胜出。

调试 Node.js 我们一般用 VSCode,而调试网页也可以用 VSCode,那么只要用熟了一个工具就行了,不用再去学 chrome devtools 怎么用,而且用 VSCode 调试体验也更好,毕竟是我们每天都用的编辑器,更顺手,这点也是 VSCode 胜出。

但你可能说那我想看 profile 信息呢? 也就是每个函数的耗时,这对于分析代码性能很重要。

这点 VSCode debugger 也支持了:

怎么使用 VSCode 调试浏览器上的的 JS 代码

点击左侧的按钮,就可以录制一段时间内的耗时信息,可以手动停止、可以指定固定的时间、可以指定到某个断点,这样 3 种方式来选择某一段代码的执行过程记录 profile 信息。

它会在项目根目录保存一个 xxx.cpuprofile 的文件,里面记录了执行每一个函数的耗时,可以层层分析某段代码的耗时,来定位问题从而优化性能。

怎么使用 VSCode 调试浏览器上的的 JS 代码

如果装了 vscode-js-profile-flame 的 VSCode extension 后,还可以换成火焰图的展示。

怎么使用 VSCode 调试浏览器上的的 JS 代码

有的同学可能看不懂火焰图,我来讲一下:

我们知道某个函数的执行路径是有 call stack 的,可以看到从哪个函数一步步调用过来的,是一条线。

怎么使用 VSCode 调试浏览器上的的 JS 代码

但其实这个函数调用的函数并不只一个,可能是多个:

1怎么使用 VSCode 调试浏览器上的的 JS 代码

调用栈只是保存了执行到某个函数的一条路线,而火焰图则保存了所有的执行路线。

所以你会在火焰图中看到这样的分叉:

1怎么使用 VSCode 调试浏览器上的的 JS 代码

其实就是这样的执行过程:

1怎么使用 VSCode 调试浏览器上的的 JS 代码

来算一道题:

函数 A 总耗时 50 ms,它调用的函数 B 耗时 10 ms,它调用的函数 C 耗时 20 ms,问:函数 A 的其余逻辑耗时多少 ms?

1怎么使用 VSCode 调试浏览器上的的 JS 代码

很明显可以算出是  50 - 10 - 20= 20 ms,可能你觉得函数 D 耗时太长了,那就去看下具体代码,然后看看是不是可以优化,之后再看下耗时。

就这么简单,profile 的性能分析就是这么做的,简单的加减法。

火焰图中的每个方块的宽度也反应了耗时,所以更直观一些。

JS 引擎是 event loop 的方式不断执行 JS 代码,因为火焰图是反应所有的代码的执行时间,所以会看到每一个 event loop 的代码执行,具体耗时多少。

1怎么使用 VSCode 调试浏览器上的的 JS 代码

每个长条的宽度代表了每个 loop 的耗时,那当然是越细越好,这样就不会阻塞渲染了。所以性能优化目标就是让火焰图变成一个个小细条,不能粗了。

绕回正题,VSCode 的 cpu profile 和火焰图相比 chrome devtools 的 performance 其实更简洁易用,可以满足大多数的需求。

我觉得,除非你想看 rendering、memory 这些信息,因为 VSCode 没有支持需要用 chrome devtools 以外,调试 JS 代码,看 profile 信息和火焰图,用 VSCode 足够了。

反正我觉得 VSCode 调试网页的 JS 代码挺香的,你觉得呢?

原文地址:https://juejin.cn/post/7010768454458277924

作者:zxg_神说要有光

更多编程相关知识,请访问:编程视频!!

以上是怎么使用 VSCode 调试浏览器上的的 JS 代码的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

vscode怎么定义头文件 vscode怎么定义头文件 Apr 15, 2025 pm 09:09 PM

如何使用 Visual Studio Code 定义头文件?创建头文件并使用 .h 或 .hpp 后缀命名在头文件中声明符号(例如类、函数、变量)使用 #include 指令在源文件中包含头文件编译程序,头文件将被包含并使声明的符号可用

vscode需要什么电脑配置 vscode需要什么电脑配置 Apr 15, 2025 pm 09:48 PM

VS Code 系统要求:操作系统:Windows 10 及以上、macOS 10.12 及以上、Linux 发行版处理器:最低 1.6 GHz,推荐 2.0 GHz 及以上内存:最低 512 MB,推荐 4 GB 及以上存储空间:最低 250 MB,推荐 1 GB 及以上其他要求:稳定网络连接,Xorg/Wayland(Linux)

vscode中文注释变成问号怎么解决 vscode中文注释变成问号怎么解决 Apr 15, 2025 pm 11:36 PM

解决 Visual Studio Code 中中文注释变为问号的方法:检查文件编码,确保为“UTF-8 without BOM”。更改字体为支持中文字符的字体,如“宋体”或“微软雅黑”。重新安装字体。启用 Unicode 支持。升级 VSCode,重启计算机,重新创建源文件。

vscode终端常用命令 vscode终端常用命令 Apr 15, 2025 pm 10:06 PM

VS Code 终端常用命令包括:清除终端屏幕(clear)列出当前目录文件(ls)更改当前工作目录(cd)打印当前工作目录路径(pwd)创建新目录(mkdir)删除空目录(rmdir)创建新文件(touch)删除文件或目录(rm)复制文件或目录(cp)移动或重命名文件或目录(mv)显示文件内容(cat)查看文件内容并滚动(less)查看文件内容只能向下滚动(more)显示文件前几行(head)

VSCode怎么用 VSCode怎么用 Apr 15, 2025 pm 11:21 PM

Visual Studio Code (VSCode) 是一款跨平台、开源且免费的代码编辑器,由微软开发。它以轻量、可扩展性和对众多编程语言的支持而著称。要安装 VSCode,请访问官方网站下载并运行安装程序。使用 VSCode 时,可以创建新项目、编辑代码、调试代码、导航项目、扩展 VSCode 和管理设置。VSCode 适用于 Windows、macOS 和 Linux,支持多种编程语言,并通过 Marketplace 提供各种扩展。它的优势包括轻量、可扩展性、广泛的语言支持、丰富的功能和版

vscode终端使用教程 vscode终端使用教程 Apr 15, 2025 pm 10:09 PM

vscode 内置终端是一个开发工具,允许在编辑器内运行命令和脚本,以简化开发流程。如何使用 vscode 终端:通过快捷键 (Ctrl/Cmd ) 打开终端。输入命令或运行脚本。使用热键 (如 Ctrl L 清除终端)。更改工作目录 (如 cd 命令)。高级功能包括调试模式、代码片段自动补全和交互式命令历史。

vscode在哪写代码 vscode在哪写代码 Apr 15, 2025 pm 09:54 PM

在 Visual Studio Code(VSCode)中编写代码简单易行,只需安装 VSCode、创建项目、选择语言、创建文件、编写代码、保存并运行即可。VSCode 的优点包括跨平台、免费开源、强大功能、扩展丰富,以及轻量快速。

vscode终端命令不能用 vscode终端命令不能用 Apr 15, 2025 pm 10:03 PM

VS Code 终端命令无法使用的原因及解决办法:未安装必要的工具(Windows:WSL;macOS:Xcode 命令行工具)路径配置错误(添加可执行文件到 PATH 环境变量中)权限问题(以管理员身份运行 VS Code)防火墙或代理限制(检查设置,解除限制)终端设置不正确(启用使用外部终端)VS Code 安装损坏(重新安装或更新)终端配置不兼容(尝试不同的终端类型或命令)特定环境变量缺失(设置必要的环境变量)

See all articles