VS Code插件之Debugger for Chrome

        号称2018最火的编辑器,不用用怎么行?

        不多说直接开始踩坑之路。

        要在vs中启动chrome控制台怎么办?vscode并没有集成环境,这里我们需要借助一个插件Debugger for Chrome。


        选择左边安装包选项,点击商店搜索Debugger for Chrome,然后点击安装,重新加载。。。

        安装完之后,点击调试,选择chrome,我们万分激动的等待控制台打开。。。

        结果却是

        这样:


        或者这样:


        反正就是不能启动。无奈去插件主页翻了翻插件说明,才明白问题所在。下面一一给大家讲解问题原因,顺带翻译部分插件说明,以便大家能顺利使用chrome控制台以及一些其他调试插件。

        先贴一张vs官网对debug模块的整体描述图,左侧图标栏第三个就是进入调试面板,右下角是控制台输入输出,最下方式调试工具信息。


        接着是官方推荐的常用调试工具,今天我们主要讲讲Debugger for Chrome。


        下面是重点。。。

        首先我们要搞明白一个重要文件,launch.json。先看下官网对这个文件的描述:


        大致意思就是,要使用大多数调试插件,你得创建一个文件用来保存这些插件的配置。vscode把调试插件的文件保存在.vscode文件夹下面的launch.json文件里。.vscode文件夹作用不用多说,里面基本就是保存用户配置或者工作区配置。(这里再罗嗦一句,用户配置就相当于全局配置,在所有的工作空间都有效,工作区配置只在当前的项目目录中生效。)

        

        从这里打开launch.json配置文件。

        一般来说,一个调试工具的配置大概长这样:

{"version": "0.2.0","configurations": [{"type": "node","request": "launch","name": "Launch Program","program": "${file}"}]
}

官网对于配置选项的描述如下:


        俺带着高中水平都不如的英文加上百度翻译,给大家说下大致意思,造福下英文水平跟我一样的渣渣,英文好的略过。。。

        这些选项中,其中最上面的3条是必须的。

        type:就是debugger工具的类型,每一个安装好的调试插件都有自己的类型。比如说node调试工具的type就是node,同理php调试工具的type就是php,我们安装的Debugger for Chrome的type就是chrome。

       request:可以理解为调试工具的启动方式,目前官网提供两种,launchattach,翻译过来就是“启动”和“附加”。就是直接启动或者挂载到进程启动,稍后在插件配置中再详细说明两种方式的差别。

        name:给调试器起一个名字,这个可以自己随便写,就是调试器启动以后最下面显示的名字。

        preLaunchTask:控制台启动一次调试之前需要执行的任务,可以把任务命令写到  文件夹中的  文件,在调试器启动前会先执行这些任务。

    postDebugTask:跟上面差不多,不同的是结束后执行。

    internalConsoleOptions:控制调试台的标签是否在调试过程可见。

    port:当调试工具需要挂载到进程的时候,就要配置端口号了。

        Debugger for Chrome插件用到的配置也不多,其他配置有兴趣的同学自己了解。上面这些配置是所有调试工具的通用配置。下面开始重点说明 Debugger for Chrome插件的配置。

        附上插件地址:https://marketplace.visualstudio.com/items?itemName=msjsdiag.debugger-for-chrome

        type选项没啥说的,就是“chrome”;

    request:启动方式官网给了两种。关于启动要先搞明白一件事,vscode并没有集成chorme控制台,而这个插件也没有集成控制台,那么插件如何做到使用chrome控制台呢?很简单,插件会打开chrome浏览器,然后挂载到chrome进程,挂载完成之后,你在vscode中输入的命令,比如“var a=1”,vscode是并不能识别的,它会把这条语句传送给chrome进程,由浏览器处理这条语句并输出结果,然后再显示给vscode的调试器。明白这个原理之后我们就知道:调试器必须要启动浏览器程序。

        事实上,调试器控制浏览器打开指定html文件,我们手动一样能完成,它只是帮我们省略了频繁切换和自己手动打开浏览器控制台的过程。我们知道,浏览器打开html文件有两种方式:1、本地打开。2、通过http服务打开(这两种方式不用我解释了吧。。。)

        下面先说第一种launch,官网给出两种方案:

{"version": "0.1.0","configurations": [{"name": "Launch localhost","type": "chrome","request": "launch","url": "http://localhost/mypage.html","webRoot": "${workspaceFolder}/wwwroot"},{"name": "Launch index.html","type": "chrome","request": "launch","file": "${workspaceFolder}/index.html"},]
}

        其实就是对应浏览器打开html文件的两种方式:有url选项的时候,表示在本地用http服务打开(怎样在本机开启http服务不用多说了吧,apache或者iis或者node都可以,反正必须开启本地http服务);如果不想开启服务器,就选择file配置,这样浏览器会打开本地html文件。

         注意:不管选用哪个方式,指定一个文件都是必须的。如果是url,webRoot选项用于将url解析到磁盘上的文件。比如写localhost/app.js会解析到工作目录里面的app.js文件。本地的话,也就是file,直接设置要打开的html文件路径,${workspaceFolder}意思就是当前工作目录,如果你写了${workspaceFolder}/index.html,就必须确保在相应的工作目录下有这个index.html文件才行。如果找不到这个文件,那么控制台是不会启动成功的。

        举例来说,如果我的工作空间是PRACTICE文件夹,创建好index.html后,调试器打开浏览器,地址栏像这样才是正确的打开了文件。


        如果像是这样,about:blank


        那就是没有找到对应文件,调试器打开肯定会失败!只有找到正确文件路径,才能打开控制台。

        再说说attach如果选择了这个选项,就意味着chrome要连接到远程服务器,所以在浏览器启动的时候要在选项中加上--remote-debugging-port=9222。这个选项是要连接到远程调试服务器上的,如果不是chrome内核,就没法连接。还有被墙的话也可能会有影响,反正我是没有用这个。

        attach选项不能设置runtimeExecutable。这个远程调用时chrome特有的,不允许自己设置浏览器。

        具体做法就是:

        windows下:找到浏览器图标,右键单击,选择属性,在目标这一栏加上


        Linux:在启动命令后面直接加上就行。

        下面我写一个常用配置:

{"version": "0.2.0","configurations": [{ "name": "这里随便写名字1","type": "chrome","request": "launch","sourceMaps": false,"file": "${workspaceRoot}/index.html",            "runtimeExecutable":"D:/Program Files/360safebrowser/360Chrome/Chrome/Application/360chrome.exe"        },        {            "name": "这里随便写名字2","type": "chrome","request": "launch","url": "http://localhost:8080","webRoot": "${workspaceRoot}",            "runtimeExecutable":"D:/Program Files/360safebrowser/360Chrome/Chrome/Application/360chrome.exe"              },         {             "name": "这里随便写名字3",            "type": "chrome",            "request": "attach",             "port": 9222,            "webRoot": "${workspaceRoot}"         }    ]}

上面这3种配置你可以选择一个适合自己的,也可以3个都选上,如果3个都写上


        随后可以在左上角选择切换要启动的方式,由于我写了3个,左上角就有了3个,对应也就是name属性。

        再说下你可能会遇到和我一样的问题:

        1、当出现Error processing "launch": Error: 找不到 Chrome,的提示时,意味着vscode找不到默认的chrome路径,此时

需要我们手动添加浏览器路径,runtimeExecutable后面写上你要使用的浏览器路径,上面图中我写的是我自己的路径,你们换成自己的就好。

        2、无法连接到运行中的进程,将在10000毫秒后超时 - (原因:无法连接到目标:connect ECONNREFUSED 127.0.0.1:9229)

        按照理论来说,只有使用attach的时候才会出现这个问题。而事实是,即是你采用哪种方式都有可能会出现这个问题,原因在插件主页找到答案。


        我们看第三条,如果你使用launch出现了这个报错,因为chrome实例存在,所以无法挂载到chrome进程,需要关闭正在运行的chrome程序,也就是关掉浏览器,必须要关掉全部窗口,然后再从vscode调试工具启动浏览器,这样就可以愉快的玩耍了。

让我们来打个window对象试一下:


         最后再强调一点,文件路径非常重要,很多问题都是路径有问题,要记着,必须找到对应的文件才能启动浏览器控制台。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/26301.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vscode对C/C++可视化的代码跟踪调试

文章目录 可视化的代码跟踪调试1、安装Visual Studio Code2、用vscode编译调试C\C 总结 可视化的代码跟踪调试 ubantu18.04的环境下,在命令行工具gdb调试基础上,利用可视化调试前端软件Visual Studio Code,(后端依然依赖gcc、gdb…

VS Code真机测试步骤

VS Code真机测试步骤 前提:你的电脑跟你的手机是在同一个网络环境下。电脑连手机热点; 1. 在扩展里搜索live server,下载安装; 2. 打开cmd 命令窗口(快捷键是winr); 输入…

VS Code调试C代码

1、前言 首先说明的是vscode是代码编辑器,并不是编译器,它本身并不能编译C语言。 在这里我们使用的是MinGW-w64作为C语言的编译器。MinGW-w64的前身是MinGW的全称是:Minimalist GNU on Windows。它实际上是将经典的开源 C语言 编译器 GCC 移…

VScode的代码截图插件CodeSnap

CodeSnap : 在 VS Code 中为您的代码截取漂亮的屏幕截图! 插件名:CodeSnap官方地址:CodeSnap - Visual Studio Marketplace特征: 快速保存代码的屏幕截图将屏幕截图复制到剪贴板显示行号许多其他配置选项用法:选中需要…

Vscode——调试数据可视化插件debug-visualizer

debug-visualizer是一款极其优秀的调试数据可视化插件 安装方法 第一步:vscode插件库安装 debug-visualizer第二步:环境内输入 pip install vscodedebugvisualizer 使用方法 启动调试Ctrl Shift P 打开命令面板,输入 Debug Visualizer: …

VS Code 最好的 Git 可视化插件

👇👇关注后回复 “进群” ,拉你进程序员交流群👇👇 作者丨小集 来源丨小集(ID:zsxjtip) Visual Studio Code 有几组 git 命令来为您的代码存储库执行和执行多项任务。但是&#xff0…

如何使用VScode软件测试接口

我们知道,Visual Studio Code(简称VScode)软件一般用于编写前端代码,但其实,它也可以很方便的用于接口测试,达到和postMan一样的效果。 怎么实现呢? 步骤如下: 1.安装 REST Clien…

视频特效软件有哪些?这些软件值得一试

大家平常在制作视频时,经常需要将多个视频拼接,但是如果两个视频中间没有什么转场过渡的话,会显得很单调。我们可以增加一些转场、音乐、特效,这样整支视频看起来效果会好很多。讲到视频特效,可能有些小伙伴会觉得它很…

python :超级大乐透

体育彩票 超级大乐透 dlt.py # codingutf-8 import randomdef xuanhao(total, count):element [x1 for x in range(total)]result []for i in range(count):res element[random.randint(0, len(element)-1)]element.remove(res)result.append(res)return result# 超级大乐透…

发卡网源码

简介:发卡网带代理功能,安装简单。 网盘地址:https://pan.baidu.com/s/1E3AtqCmBZPjXgaiUEXrM6Q 提取码:rsu4 展示:

最新鲸发卡企业发卡网系统源码+免授权

正文: 心心念念的鲸发卡来啦,企业发卡源码,鲸发卡。目前全网最稳定的发卡系统之一。 在运营版本,既然做就要把他当作一项事业来做。 程序开源无加密,完整运营级程序,非市面上垃圾程序BUG一堆。 此程序经过市场验证…

功能强大的发卡网源码+支付接口超多

正文: 有二十三个支付接口,三套前台模板。 由于还得更新其他源码,就填充了一个商品,UI看起来不错,脑补了下, 填充完商品后,应该会更好看。 程序: wwbwf.lanzouf.com/iigbh09ygu6b 图片:

【.NET AI Books 前言】Azure OpenAI Service 入门

本书是为 .NET 开发者而写的,让 .NET 开发者能快速掌握 Azure OpenAI Service 的使用技巧。 ChatGPT 的到来意味着我们已经置身于 AI 引起的全新变革中,作为开发者你可能将面临几种改变: GPT 模型到来后,如何去架构好企业解决方案…

github基本操作

目标 把本地的一个项目放到github上,方便浏览和管理 步骤 要将本地代码推送到 GitHub 上,您需要执行以下步骤: 1. 在 GitHub 上创建一个新的仓库。 2. 在本地计算机上使用 Git 命令行工具初始化一个新的 Git 仓库。 3. 将本地代码添加到 …

如何构造个人 AI 策略:从 AI 绘画的演进与 ChatGPT 现状出发?

持续关注 AI 相关探索:https://github.com/phodal/ai-research PS:就本文的结论而言,我相信你已经或多或少的有所体会了。也因此,本文更多的是展现一个思考的过程,而不是一个纯粹的结论。 AIGC 是什么?它是…

如何利用CPU Cache写出高性能代码,看这些图就够了!

世界就像个巨大的马戏团,它让你兴奋,却让我惶恐,因为我知道散场永远是——有限温存,无限辛酸。——卓别林 我们平时编写的代码最后都会交给CPU来执行,如何能巧妙利用CPU写出性能比较高的代码呢?看完这篇文章…

对视频剪辑应用灰度图像变换+Moviepy生成灰度视频处理遇到几个有意思的问题

一、引言 最近在学习图像处理的《直方图处理》,对直方图均衡处理效果感觉非常有用。 以前学习Moviepy音视频剪辑时,用的卓别林的一个黑白视频片段,感觉视频的噪点比较多,画面也整体偏暗,不禁想看看如果对其进行直方图…

大厂正在「去大厂化」

大厂逐渐不再是「大厂」。 撰文 | 佘宗明 大厂还值得去吗? 这成了摆在很多年轻人面前的问题。 搁几年前,这都不能称之为问题。 扁平化管理、快速上升空间、弹性工作制……比JK制服还诱惑。「财务自由」的召唤,更是胜却人间无数情怀。 那现在呢…

无心剑中译伊玛·拉扎罗斯《新巨人·自由女神》

文章目录 无心剑中译伊玛拉扎罗斯《新巨人自由女神》译友们中译伊玛拉扎罗斯《新巨人自由女神》1. 岩子版2. MNES版3. 天河版4. 铁冰版5. 好好做虾版6. 愚冠版卓别林十大经典语录卓别林最伟大的演讲《为自由而战斗》无心剑中译迈克尔杰克逊《自由无拘束》《被讨厌的勇气》- 什么…

当我真正开始爱自己——查理·卓别林

As I began to love myself I found that anguish and emotional sufferingare only warning signs that I was living against my own truth.Today, I know, this is “AUTHENTICITY”. As I began to love myself I understood how much it can offend somebodyAs I try to f…