前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航
  • React专栏

    • React组合式开发实战

      • 前端开发的四个时代
      • 企业管理系统的前世今生
      • 可视化页面搭建工具
      • 实战篇 01:开发前准备
      • 实战篇 02:项目脚手架
      • 实战篇 03:页面布局方案
      • 实战篇 04:权限管理机制
      • 实战篇 05:菜单匹配逻辑
      • 实战篇 06:消息通知设计
      • 实战篇 07:多语言支持
      • 继往开来:可视化页面搭建工具
    • React Hooks与Immutable实战

    • React SSR服务端渲染与同构实践

    • IM聊天系统前端开发实践

    • 微前端开发实战

    • React进阶实践

  • Vue专栏

  • 移动端专栏

  • Node专栏

  • 前端工程化专栏

  • 算法专栏

  • Typescript专栏

  • 其他专栏

完整面试题地址:
作者:程序员poetry
扫码关注作者公众号:「前端进阶之旅」 每天分享技术干货
前端进阶之旅公众号二维码

想看懂复杂代码离不开 debugger,它是提升 Node.js 水平必备的能力。因为后面的案例代码都是有一定的复杂度的,建议同学们先学会使用 debugger 再去学后面的案例,结合 debugger 来看。

这一节,我们来学习下 vscode debugger 的使用。

首先,同学们把 代码下载下来后,可以看到又一个 .vscode 的目录,里面有个 launch.json 的配置,这里面就是调试的配置。

img

这个文件就是调试的配置,点开 debugger 的窗口,就可以看到启动调试的按钮。

img

可以在想断住的那一行左边点一下,就会打上断点,然后点击调试,就会以 debug 模式运行,到了断点就会停住,然后可以看到堆栈信息、断点等。

img

这是 vscode debugger 的使用方式。

# vscode debugger 的配置

会了怎么使用之后,我们来深入讲下怎么配置,希望能够让同学们的 nodejs 调试能力有所提升。

点击这个齿轮,会打开 .vscode/launch.json 的内容来编辑,在这里写各种配置。

img

点击右下角的按钮就会有一个菜单来选择配置的模版:

img

运行环境有很多,比如 chrome、node.js 等,这里我们只需要 node.js 的环境。

然后启动方式分为 launch 和 attach 两种。为什么是这两种呢?

那是因为调试是分为客户端和服务端的,

img

我们如果是启动 node.js 的调试模式,需要加上 --inspect 或者 --inspect-brk(在首行断住)参数,之后会启动一个 websocket server,等待客户端链接。

img

两者之间是通过 v8 debug protocol 来通信的。

比如: 设置断点:

{
    "seq":117,
    "type":"request",
    "command":"setbreakpoint",
    "arguments":{
        "type":"function",
        "target":"f"
    }
}
@前端进阶之旅: 代码已经复制到剪贴板

去掉断点:

{
    "seq":117,
    "type":"request",
    "command":"clearbreakpoint",
    "arguments": {
        "type":"function",
        "breakpoint":1
     }
}
@前端进阶之旅: 代码已经复制到剪贴板

手动连接的话可以打开 chrome://inspect 页面,可以用 chrome devtools 的 debugger client 连上来调试。

img

img

但是,用 vscode 不用这么麻烦,直接在 .vscode/lau

fe
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航
  • React专栏

    • React组合式开发实战

      • 前端开发的四个时代
      • 企业管理系统的前世今生
      • 可视化页面搭建工具
      • 实战篇 01:开发前准备
      • 实战篇 02:项目脚手架
      • 实战篇 03:页面布局方案
      • 实战篇 04:权限管理机制
      • 实战篇 05:菜单匹配逻辑
      • 实战篇 06:消息通知设计
      • 实战篇 07:多语言支持
      • 继往开来:可视化页面搭建工具
    • React Hooks与Immutable实战

    • React SSR服务端渲染与同构实践

    • IM聊天系统前端开发实践

    • 微前端开发实战

    • React进阶实践

  • Vue专栏

  • 移动端专栏

  • Node专栏

  • 前端工程化专栏

  • 算法专栏

  • Typescript专栏

  • 其他专栏