大家好,我是若川。今天周末,分享一篇相对比较简单的文章。学习源码系列、面试、年度总结、JS基础系列。


2021-07-16 微软发布了一篇博客专门介绍了这个功能,VSCode 牛逼!

在此之前,你想要在 vscode 内调试 chrome 或者 edge 需要借助于 Chrome Debugger 或者 the Microsoft Edge Debugger extension 这两款 vscode 扩展。

并且更重要的是,其仅能提供最基本的控制台功能,其他的诸如 network,element 是无法查看的,我们仍然需要到浏览器中查看。

这是个什么功能

更新之后,我们可以直接在 vscode 中 open link in chrome or edge,并且「直接在 vscode 内完成诸如查看 element,network 等几乎所有的常见调试需要用到的功能」

效果截图:

(edge devtools)

(debug console)

如何使用

使用方式非常简单,大家只需要在前端项目中按 F5 触发调试并进行简单的配置即可。这里给大家贴一份 lauch.json 配置,有了它就可以直接开启调试浏览器了。

{"version": "0.2.0","configurations": [{"type": "pwa-msedge","request": "launch","name": "Launch Microsoft Edge and open the Edge DevTools","url": "http://localhost:8080","webRoot": "${workspaceFolder}"}]
}

大家需要根据自己的情况修改 url 和 webRoot 等参数。

原理

原理其实和 chrome debugger 扩展原理类似。也是基于 Chrome 的 devtool 协议,建立 「websocket 链接。通过发送格式化的 json 数据进行交互」,这样 vscode 就可以动态拿到运行时的一些信息。比如浏览器网络线程发送的请求以及 DOM 节点信息。

你可以通过 「chrome devtool protocol」 拿到很多信息,比如上面提到的 network 请求。

由于是 websocket 建立的双向链接,因此在 VSCODE 中改变 dom 等触发浏览器的修改也变得容易。我们只需要在 VSCODE(websocket client) 中操作后通过 websocket 发送一条 JSON 数据到浏览器(websocket server)即可。浏览器会根据收到的 JSON 数据进行一些操作,从效果上来看「和用户直接在手动在浏览器中操作并无二致。」

值得注意的,chrome devtool protocol 的客户端有很多,不仅仅是 NodeJS 客户端,Python,Java,PHP 等各种客户端一应俱全。

更多

  • Easier browser debugging with Developer Tools integration in Visual Studio Code

  • vscode-js-debug

  • chrome devtools-protocol

  • Microsoft Edge (Chromium) DevTools Protocol overview

最近组建了一个江西人的前端交流群,如果你是江西人可以加我微信 ruochuan12 私信 江西 拉你进群。


推荐阅读

我在阿里招前端,该怎么帮你(可进面试群)
我读源码的经历

在字节做前端一年后,有啥收获~
老姚浅谈:怎么学JavaScript?

················· 若川简介 ·················

你好,我是若川,毕业于江西高校。现在是一名前端开发“工程师”。写有《学习源码整体架构系列》多篇,在知乎、掘金收获超百万阅读。
从2014年起,每年都会写一篇年度总结,已经写了7篇,点击查看年度总结。
同时,活跃在知乎@若川,掘金@若川。致力于分享前端开发经验,愿景:帮助5年内前端人走向前列。

识别方二维码加我微信、长期交流学习

今日话题

略。欢迎分享、收藏、点赞、在看我的公众号文章~

VSCode 竟然可以无缝调试浏览器了!相关推荐

  1. vscode使用wsl远程调试linux代码

    vscode现在可以使用远程调试功能 ,可以通过ssh连接远程服务器,使用容器或者使用wsl,本地vscode作为人机接口,实际的代码和调试程序都在远程运行. 现在将我使用wsl过程和碰到的问题记录下 ...

  2. 在vscode中加参数调试-python

    在vscode中加参数调试-python 有时会遇到需要带有命令行参数的debug,因此需要在vscode的配置文件lanuch.json中添加命令行参数 解决方案 1.首先需要找到lanuch.js ...

  3. 你好,我的Dev-C++ 5.15被烦人的360杀毒软件给删了,放到白名单里之后就360竟然把所有的浏览器全部删掉了,请问怎么办

    markdown 你好,我的Dev-C++ 5.15被烦人的360杀毒软件给删了,放到白名单里之后就360竟然把所有的浏览器全部删掉了,请问怎么办 1+2=3 hello, world! 文章目录 m ...

  4. 使用VsCode进行ROS程序调试

    使用VsCode进行ROS程序调试 安装相关插件 创建调试配置文件 启动调试 安装相关插件 首先在VsCode中安装相关插件 最重要是安装ROS插件,请注意是微软发布的版本 创建调试配置文件 点开RO ...

  5. VsCode + gdb + gdbserver远程调试arm嵌入式linux C/C++程序

    基本流程跟我的另一篇文章<VsCode + gdb + gdbserver远程调试C++程序>一样,不一样的是需要重新编译gdb和交叉编译gdbserver. 一.准备工作 sudo ap ...

  6. gdb vscode调试linux程序,vscode如何使用gdb调试

    vscode如何使用gdb调试,路径,程序,设备,文件名,可执行 vscode如何使用gdb调试 易采站长站,站长之家为您整理了vscode如何使用gdb调试的相关内容. 1.vscode启动debu ...

  7. windows环境下 VSCode的安装和调试

    作者 @kaka VSCode的安装和调试 1. 下载安装包 去官网下载安装包直接安装,安装包下载地址 安装就是傻瓜式安装,有选项的就全选. 2. 下载配置编译器 因为VSCode只是一个功能强大的记 ...

  8. VSCode启动Debug模式调试Python文件

    VSCode启动Debug模式调试Python文件 一.调试一般的Python文件 1.点击Extensions安装扩展插件 2.在输入框中输入Python,点击安装 3.点击界面中的"Ru ...

  9. vscode 文件夹中查找_真香!使用 VSCode 进行远程开发调试

    对于大型的 Golang 项目往往我都会使用 Goland 这样的专业 IDE,但是由于我本地开发环境硬件资源偏低,不能很顺畅的使用 Goland,这个时候我们可以考虑使用 VSCode 来代替 Go ...

最新文章

  1. 关于简聊 Webpack 配置的一些注释
  2. 【 MATLAB 】Matlab 帮助文档需要登录问题如何解决?
  3. 企业建设什么样的网站才能符合用户?
  4. python pyqt5 窗体自适应_Pyqt5自适应布局实例
  5. 4 微信公众号开发 被动回复消息 回复没有反应怎么办
  6. 求C n m(从n个数中选m个数,有多少种组合?问题)暴力—递归——回归数学公式,三种方法,层层优化!
  7. 数据库零碎要点001_数据库的4大特性(原子性_持久性_隔离性_一致性)_数据库的隔离级别(脏读_幻读_不可重复读)_mysql如何设置隔离级别
  8. 后台开发必备的那些Linux命令
  9. centos linux引导修复_CentOs7 修复 引导启动
  10. java 调用本地播放器_Java调用本地播放器播放视频文件
  11. 企业微信第三方服务商应用开发及上架教程
  12. Exception in thread main java.util.UnknownFormatConversionException: Conversion = ';'
  13. oracle从11.0.2.4.0打PSU 11.0.2.4.8
  14. 【免费办公软件】万彩办公大师教程丨文件批量解压工具
  15. laravel Eloquent whereIn 多个字段
  16. 基于Matlab模拟AWGN 信道上 OFDM附完整代码
  17. 【漫画】各大互联网公司的真实“人”生
  18. arcengine 面积单位转换
  19. 古诗+代码 = 绝配
  20. 【SpringBoot】springboot日志配置

热门文章

  1. 计算机软件记不住设置,想知道电脑密码记不住了怎么办
  2. oracle10g执行insert,oracle 10g 增强审计。表insert 及bind values
  3. 一份完整的问卷模板_一份完整市场推广策划方案模板
  4. html单张图片效果,jquery+html5实现单张图片上传预览
  5. openstack一键安装脚本(转载)
  6. JavaScript面向对象编程指南(五) 原型
  7. 分珠(dfs+并查集)
  8. Spark入门实战系列--8.Spark MLlib(上)--机器学习及SparkMLlib简介
  9. 安装TokuDB引擎
  10. Thinkphp 整合tcpdf