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

怎么使用 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中文网其他相关文章!

声明
本文转载于:掘金-zxg_神说要有光。如有侵权,请联系admin@php.cn删除
Visual Studio:代码编译,测试和部署Visual Studio:代码编译,测试和部署Apr 24, 2025 am 12:05 AM

在VisualStudio中,代码编译、测试和部署的步骤如下:1.编译:使用VisualStudio的编译器选项将源代码转化为可执行文件,支持多种语言如C#、C 和Python。2.测试:利用内置的MSTest和NUnit等框架进行单元测试,提高代码质量和可靠性。3.部署:通过Web部署、Azure部署等方式,将应用程序从开发环境转移到生产环境,确保安全性和性能。

Visual Studio:综合开发环境简介(IDE)Visual Studio:综合开发环境简介(IDE)Apr 23, 2025 am 12:02 AM

VisualStudioisMicrosoft'sflagshipIDE,supportingmultipleprogramminglanguagesandenhancingcodingefficiency.1)ItoffersfeatureslikeIntelliSenseforcodeprediction,multi-tabbedinterfaceforprojectmanagement,andtoolsfordebugging,refactoring,andversioncontrol.2

Visual Studio:探索免费和付费产品Visual Studio:探索免费和付费产品Apr 22, 2025 am 12:09 AM

VisualStudio的免费版和付费版的主要区别在于功能的丰富程度和支持的服务。免费版(Community)适用于个人开发者和小型团队,提供基本开发工具;付费版(Professional和Enterprise)则提供高级功能,如高级调试和团队协作工具,适合大型项目和企业级开发。

Visual Studio社区版:解释的免费选项Visual Studio社区版:解释的免费选项Apr 21, 2025 am 12:09 AM

VisualStudioCommunityEdition是一款免费的IDE,适合个人开发者、小型团队和教育机构。1)它提供代码编辑、调试、测试和版本控制等功能。2)基于Roslyn编译器平台,支持多种编程语言并集成Git和TFVC。3)高级功能包括单元测试,优化建议包括关闭不必要的扩展和使用轻量级编辑器。

视觉工作室:轻松构建应用程序视觉工作室:轻松构建应用程序Apr 20, 2025 am 12:09 AM

VisualStudio是由微软开发的集成开发环境(IDE),支持多种编程语言,包括C#,C ,Python等。1.它提供了智能感知(IntelliSense)功能,帮助快速编写代码。2.调试器允许设置断点,逐步执行代码,找出问题。3.对于初学者,创建简单的控制台应用程序是入门的好方法。4.高级用法包括项目管理和依赖注入等设计模式的应用。5.常见错误可以通过调试工具逐步解决。6.性能优化和最佳实践包括代码优化、版本控制、代码质量检查和自动化测试。

Visual Studio和VS代码:了解其关键差异Visual Studio和VS代码:了解其关键差异Apr 19, 2025 am 12:16 AM

VisualStudio适合大型项目和企业级应用开发,VSCode则适合快速开发和多语言支持。1.VisualStudio提供全面的IDE环境,支持微软技术栈。2.VSCode是轻量级编辑器,强调灵活性和扩展性,跨平台支持。

视觉工作室仍然免费吗?了解可用性视觉工作室仍然免费吗?了解可用性Apr 18, 2025 am 12:05 AM

是的,VisualStudio某些版本是免费的。具体来说,VisualStudioCommunityEdition对个人开发者、开源项目、学术研究和小型组织免费。然而,也有付费版本如VisualStudioProfessional和Enterprise,适用于大型团队和企业,提供额外功能。

使用Visual Studio:跨平台开发软件使用Visual Studio:跨平台开发软件Apr 17, 2025 am 12:13 AM

使用VisualStudio进行跨平台开发是可行的,通过支持.NETCore和Xamarin等框架,开发者可以编写一次代码并在多个操作系统上运行。1)创建.NETCore项目并使用其跨平台能力,2)使用Xamarin进行移动应用开发,3)利用异步编程和代码重用来优化性能,确保应用的高效运行和可维护性。

See all articles

热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

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

热工具

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

禅工作室 13.0.1

禅工作室 13.0.1

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