Web调试技术|青训营笔记

37 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 10 天

1 Bug与Debug

前端Bug的特点

  1. 多平台(浏览器、Hybrid、NodeJs、小程序、桌面应用等)
  2. 多环境(本地开发环境、线上环境)
  3. 多工具9Chrome devTools、Charles、Spy-Debugger、Whistle、vConsole等)
  4. 多技巧(Console、BreakPoint、sourceMap、代理等)

image.png

  1. 点击 .cls 开启动态修改元素的 class
  2. 输入字符串可以动态的给元素添加类名
  3. 勾选/取消类名可以动态的查看类名生效效果
  4. 点击具体的样式值(字号、颜色、宽度高度等)可以进行编辑,浏览器内容区域实时预览
  5. Computed 下点击样式里的箭头可以跳转到 styles 面板中的 css规则

用以下两种方式强制激活伪类:

  1. 选中具有伪类的元素,点击 :hov
  2. DOM 树右键菜单,选择 Force State

Console控制台日志

  • console.log

  • console.warn

  • console.error

  • console.debug

  • console.info

  • console.table 具象化的展示 JSON 和数组数据

  • console.dir 通过类似文件树的方式展示对象的属性

  • 占位符 给日志添加样式,可以突出重要的信息
    %s:字符串占位符(白色);%o:对象占位符;%c:样式占位符;%d:数字占位符

小结:不同类型的对象,颜色不同,因此可以用识别对象类型

Source Tob

image.png
第一排Debug工具栏,从左到右依次为

  • 暂停(继续)
  • 单步跳过
  • 进入函数
  • 跳出函数
  • 单步执行
  • 激活(关闭)所有断点
  • 代码执行异常处自动

下面的区域为:断点调试器

断点调试方法:

  1. 使用关键字 debugger 或代码预览区域的行号可以设置断点
  2. 执行到断点处时代码暂停执行
  3. 展开 Breakpoints 列表可以查看断点列表,勾选/取消可以激活/禁用对应断点
  4. 暂停状态下,鼠标 hover 变量可以查看变量的值
  5. 在调试器 Watch 右侧点击 + 可以添加对变量的监控,查看该变量的值

Source Map

思考题:
既然map可以映射源码,那压缩后的代码带上Source Map上线不就不安全了吗?
解答:
Source Map的应用场景是监控,在监控的时候,在代码上线的时候一般不带Source Map,为了安全也可以减少体积。所以,在项目打包的时候带Source Map打包,产物里面是有Source Map的,但在上线之前将Source Map上传到另一个平台,例如监控平台,上传之后再删掉Source Map,再上传不带Source Map的产物,部署上线。