前端调试各种收集

前端调试

前言

  • 当我第一次知道这种东西,我也惊呆了,居然还有这种操作,实在强大到没朋友,从此爱上调试,按时下班
  • 无数次通过调试解决问题的经验告诉我,调试绝对是开发者最应该掌握的重要技能之一。调试能帮助我们定位问题解决问题,每解决一个问题,经验值就往上涨。后面就可以考经验解决很多问题,并且能正确避开当年踩过的雷区,减少再犯次数,节省解决问题的时间,大大提高开发效率和编码水平。我想这应该是掌握调试技能的一个很重要意义,而不仅仅是为了解决问题
  • 你是否遇到过以下情况:
    1. 按钮的点击事件不起作用,点击按钮没反应。下载人家的demo运行,点击登录之后不出错页面也不跳转
    2. 请求数据后填充到页面,但是页面却不显示数据
    3. 某个请求总是被取消
    4. 明明按照人家教程来写,代码一模一样,却得不到和教程一样的效果
    5. 无意中写错字母,大小写部分,运行出错,但是看代码怎么都看不出问题
    6. 按照文档的写法,控制台老是报错,且错误发生在使用的组件里面,不是自己写的代码
    7. 等等,还有很多类型的问题
  • 以上问题基本都可以通过调试解决,只需要掌握相关的调试技巧就可以

断点

  • 调试的第一步就是打断点。断点的目的是,代码运行时在你想要开始调试的地方停下来。这个时候就可以查看当前上下文信息,比如全局变量、局部变量的值,函数的输入是否正确,请求的返回值是否正常等。通过此操作判断问题发生的地方,好对症下药
  • 谷歌浏览器(版本为69)为例,编辑器为VSCode(版本1.26.1)

断点方式一

  • 这种方式是比较常用的方式,在浏览器开发工具找到对应源码,在script脚本节点里面的代码行断点

  • 首先在浏览器页面按F12打开开发工具,点击Sources选项,默认显示的是Page标签。然后找到需要调试的源码文件
  • 如果是正常html页面,那么源码一般是在对应域名下面。如果是webpack处理的页面,并且开启了源码映射,源码就是在webpack://下面。可通过快捷键ctrl+ o打开搜索框输入文件名搜索源码
  • 只要找到源码,在脚本代码显示区域左边的数字上添加断点即可,之后只要代码运行到断点处,开发工具就会进入调试状态
  • 注意:有的数字行是灰色的,就是不可断点。有时候点击15行断点选中14行,这是因为浏览器真正执行的代码行不是你看到的那一行,可能是优化掉了或者经过某种转换。还有的情况是,添加某一行断点,会跳转到另一个页面并命中某一行,这个页面的背景色是黄色且文件名是VM开头。上述情况,大部分都是因为浏览器显示的源码版本,跟真正的源码文件不一致,只需要刷新一下页面,保证显示的源码是最新的即可

  • 技巧1:有时候源码历经千辛万苦都找不到在哪,这时候就需要祭出console.log了。在需要调试的那一行代码前加上console.log(666),然后运行一次,到控制台查看结果输出,点击右边的链接会自动跳转到源码,这样就可以直接断点了

  • 技巧2:如下图,在Filesystem添加文件夹到工作路径,选择之后会有提示,点击接受。如果你的谷歌浏览器没有这玩意,请升级版本,还是没有的话,请忽略这段话。虽然不知道这是什么时候出的功能,但是我偶然发现的,它可以编辑之后真的保存到文件,这个可以当编辑器用了。

断点方式二

  • 这种方式很粗暴,在需要调试的地方加debugger关键字,代码运行到的时候会自动停下,进入调试模式
  • 此方法不需要手动断点,但是麻烦的是可能你调试一次就不用再调试了,但是每次运行到那里都会停下,必须移除这个代码才行
  • 这玩意我在不少网站也见到有人用,不想让人家方便的查看到网站源码,一打开控制台就自动debugger

断点方式三

  • 这种方式简单归为在编辑器中断点调试,是需要连接调试器(可以是远程调试器)或者附加进程,然后接收调试信息,就可以在编辑器源码进行断点调试
  • 在Chrome和VS Code中调试Vue.js此方法出处。这种方式使用VSCode的“Debugger for Chrome”扩展,推荐。感觉就是上面的第一种方式,只不过将源码映射到本地源码,并在编辑器上显示。简单介绍下步骤:
    1. webpack配置:webpack配置添加devtool:‘source-map‘开启源码映射。
// Vue CLI 3.X
module.exports = {
  configureWebpack: {
    devtool: "source-map"
  }
};
  1. 调试配置:VSCode中按F5,将出现选择环境的输入框(如果已有launch.json不会出现),选择Chrome。在launch.json中的配置如下。其中url是打开浏览器之后访问的地址,webRootapp.jsmain.js等入口文件所在目录,后面两个是实验性功能(高级功能,鼠标悬停在上面会有说明)
{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "chrome",
            "request": "launch",
            "name": "启动 Chrome 并打开 localhost",
            "url": "http://localhost:8080",
            "webRoot": "${workspaceFolder}/src",
            "breakOnLoad": true,
            "sourceMapPathOverrides": {
                "webpack:///src/*": "${webRoot}/*"
            }
        }
    ]
}
  1. 调试:在vue文件组件你想调试的行的断点,通过命令npm startnpm dev或者npm serve其中一个命令(具体是哪一个可以查看package.jsonscripts节点)运行项目
  2. F5启动调试,一切正常的话将会命中你的断点
  3. 注意:如果没有命中断点并且你的断点不是红点,需要一个骚操作才能在VSCode断点调试:在打开的谷歌浏览器的开发工具源码断点调试一次(或者加关键字debugger触发调试,参考上面方式一),运行到断点处VSCode会自跳出一个缓存的源码页来进行调试。另外,基于以上情况,如果在VSCode调试的显示的源码跟真的源码不同,那么就是源码映射不正确,上面的配置webRoot不正确。即使不正确,通过这个骚操作一样可以在VSCode调试,就是不太优雅,效果如下:

  • 远程调试Chrome

    • 附加浏览器的方式,不同于上一种,修改代码后要刷新页面才能重新断点调试
    • 待更新

断点方式四

  • 这种方式归为调试nodejs,可以调试webpack配置,或者后端运行的node实例。
  • 这种方式是在启动node的时候加上--inspect,开启V8 Inspector功能,通过WebSockets通信,调试器连接即可调试,更多调试器参考官方文档。以下是几个示例:
    • 调试vue.config.js,可以在调试查看配置,这样即使看不懂文档也可以按照自己的想法来写配置,甚至根本不用在看文档。使用方式是在VSCode配置如下,两种配置等效。调试webpack.config.js同理,将启动文件替换即可,可查看package.jsonscripts节点对应命令确定启动文件
    {
       "version": "0.2.0",
       "configurations": [
           {
               "type": "node",
               "request": "launch",
               "name": "Launch Program",
               "args": [
                   "serve"
               ],
               "program": "${workspaceFolder}  /node_modules/@vue/cli-service/bin/v  ue-cli-service.  js"//client-app/src/aspnet-dev.js"
           },
           {
               "type": "node",
               "request": "launch",
               "name": "Launch via NPM",
               "runtimeExecutable": "node",
               "runtimeArgs": [
                   "--inspect-brk=9229",
                   ".  /node_modules/@vue/cli-service/b  in/vue-cli-service.js",  //"./client-app/src/aspnet-dev.  js",
                   "serve"
               ],
               "autoAttachChildProcesses": true,
               "port": 9229
           }
        ]
    }

    • 调试aspnetcore的NodeServices其中一种打开方式,这个可以在VSCode进行调试,调试器由VSCode提供,不会自动连接,有点麻烦,建议用下一种,方便。
    • 如果用谷歌浏览器的开发工具做调试器,可以尝试插件nim,启动node或自动打开标签页。或者谷歌浏览器自带的,在Connection处添加连接,检测到信号会自动连接,在Filesyatem添加需要调试的源码即可。如果浏览器连接了node环境的站点,并且启用了Inspector,那么开发工具会有一个图标可以快速打开node调试器

其他参考(按推荐指数排列)

原文地址:https://www.cnblogs.com/xxred/p/9616626.html

时间: 2024-09-30 20:14:40

前端调试各种收集的相关文章

WEB前端常用网站收集

WEB前端常用网站收集整理 王牌网站 w3school 菜鸟教程 RUNOOB NEC更好的CSS方案 前端里 脚本之家 17素材 frontopen JS实例 CSS整理与优化工具 图标类http://www.easyicon.net/http://findicons.com/http://preloaders.net/ 分享按钮,同时支持PC端和移动端前端导航站(公共库) 网页模板模板之家模板王 展示类WHYCSS 其他博客空间A Good User Interface张鑫旭 梦想天空 bo

前端调试利器---nproxy

前言:习惯了在windows环境中使用Fiddler的童鞋们,是不是感觉它的网络重定向功能很酷,Fiddler能按照你设置的规制捕获网络请求,再指向本地文件,如拦截你的js文件到本地,就能很快的调试线上环境(如后台环境,测试环境,预上线环境等).但是Fiddler的使用对于初学者来说还是稍有困难的,界面功能很多,导致新手无从下手.(我当初就是这样的),并且Fiddler虽然有Mac版本,但是问题很多,我试了好几次都不行. 正文:今天给大家介绍一款新的神器,nproxy.它能通吃windows,l

前端调试F12

前端调试F12 在前端代码调试中,F12是经常用到的,如下介绍一些简单操作 ①F12------->>得带图1,默认在查看器上面,这里将显示所有源码,当鼠标放在某个标签上时.页面上会选中当前鼠标选中的地方. ②样式编辑器---------->点击会得到整个页面的样式 ③查看器中点击某行,在右边会出现此行相关的样式(如图2),在这里我们可以进行调试,点击某个样式的值,如图是width的值292px,再可以用 上下方向键进行改变值,值一个一个的加减,观察图片在页面中的位置,直到我们满意为止.

前端调试入门

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由MarsBoy发表于云+社区专栏 1 控制台 这里的控制台特指PC端浏览器进入开发者模式之后新打开的操作界面.常见的控制台有Chrome的控制台,Firefox的firebug.这些都能帮助我们调试前端问题.本手册将以Chrome浏览器控制台为例进行讲解. 下图1为Chrome浏览器控制台,图2为Firefox控制台. 图1 Chrome浏览器控制台 图 2 Firefox浏览器控制台 1.1脚本执行 上图1中,点击tab3 进入

【转】手机web前端调试页面的几种方式

前言 PC端web页面调试比较容易,这里主要说几种移动端调试的方法,从简单到复杂.从模拟调试到远程调试,大概分为几部分: 1.Chrome DevTools(谷歌浏览器)的模拟手机调试 2.weinre(web inspector remote)远程调试工具 3.微信的“web开发者工具”,集成了Chrome DevTools和weinre,做的比较好 4.Chrome DevTools远程调试Android和iOS页面 5.Eruda——手机网页前端调试面板 阅读说明 本文不是小白文,需要一定

前端调试代码 chrom 和 火狐禁用缓存 Disabled cache

前端调试的时候经常遇到缓存问题, chrome : f12  ---> 找到 Disabled caceh 勾上 火狐: f12 找到 禁用缓存 原文地址:https://www.cnblogs.com/dafei4/p/11169071.html

前端常用网址收集

前端常用网址收集 express:http://www.expressjs.com.cn/ PHP中文网:https://www.php.cn/ swipe中文网:https://www.swiper.com.cn/(轮播) 原文地址:https://www.cnblogs.com/xiaozhou223/p/11824949.html

10分钟学会前端调试利器——FireBug

概述 FireBug是一个用于网站前端开发的工具,它是FireFox浏览器的一个扩展插件.它可以用于调试JavaScript.查看DOM.分析CSS.监控网络流量以及进行Ajax交互等.它提供了几乎前端开发需要的全部功能.官方网站:www.getfirebug.com 如何获取Firebug? 因为它是Firefox浏览器的一个扩展插件,所以首先需要下载Firefox浏览器.读者可以访问www.mozilla.com下载并安装Firefox浏览器.安装完成后用它访问https://addons.

Web前端调试利器—FireBug使用方法推荐

概述 FireBug是一个用于网站前端开发的工具,它是FireFox浏览器的一个扩展插件.它可以用于调试JavaScript.查看DOM.分析CSS.监控网络流量以及进行Ajax交互等.它提供了几乎前端开发需要的全部功能.官方网站:www.getfirebug.com 如何获取Firebug? 因为它是Firefox浏览器的一个扩展插件,所以首先需要下载Firefox浏览器.读者可以访问www.mozilla.com下载并安装Firefox浏览器.安装完成后用它访问https://addons.