【vscode】前端调试

调试原理

  • 通信协议 Chrome DevTools Protocol (CDP)
    • 通过通信协议传输调试数据
  • 调试后端
    • Chrome 浏览器内置了 CDP 服务端功能
    • 当 Chrome 以调试模式启动时,会自动开启 CDP 服务端
  • 调试前端
    • vscode debugger
    • chrome devtools

chrome 调试模式

"xx/chrome.exe" --remote-debugging-port=9222 --user-data-dir="C:\temp\chrome-debug"

  • remote-debugging-port
    • 远程调试端口
    • 默认不开启
    • 开启调试端口才开启远程调试服务
  • user-data-dir
    • 用户数据目录
    • 存放浏览记录、cookies、插件、书签等信息
    • 用户数据目录只能被一个 Chrome 实例

调试配置文件 launch.json

json 复制代码
{
  "configurations": [
    {
        "name": "Launch Chrome",
        "request": "launch",
        "type": "chrome",
        "url": "http://localhost:8080",
        "webRoot": "${workspaceFolder}"
    }
  ]
}
  • name
    • 调试配置的名称
    • 会在 VS Code 调试面板中显示
  • port
    • 指定调试器要连接的 Chrome 远程调试端口
    • launch 模式下 port 通常是自动设置的,无需配置
    • attach 模式必须指定这个端口,因为需要连接到以 --remote-debugging-port=xxxx 启动的 Chrome
  • request
    • 指定调试器的启动方式
  • type
    • 指定调试器类型
    • VSCode 会使用指定调试器扩展
      • Debugger for Chrome/Debugger for Firefox
  • webRoot
    • 指定源代码的根目录
    • ${workspaceFolder}:VS Code 变量,指向当前工作区根目录
  • url
    • 要调试的网页地址
    • 在 attach 模式下通常是无效的
  • userDataDir
    • 默认是 true,代表创建一个临时目录来保存用户数据
    • false:使用默认 userDataDir 来启动 chrome
request
  • launch
    • VSCode 在 launch 模式下会自动启动一个新的 Chrome 实例
      • Chrome 实例的调试端口由 VSCode 默认设置
    • Chrome 实例会自动打开 launch.json 配置的 url 网页
    • VSCode 启动调试器,通过该端口与 Chrome 通信,实现调试功能
  • attach
    • 需要手动启动带调试端口的 Chrome 实例
      • "xx/chrome.exe" --remote-debugging-port=9222 --user-data-dir="C:\temp\chrome-debug"
    • 在 Chrome 实例手动运行要调试的网页
    • VSCode 启动调试器,通过配置中的 port 端口与 Chrome 通信,实现调试功能

调试 vue/react

  • 启动开发服务器
  • 添加调试配置
    • 新建文件 .vscode/launch.json
    • 添加配置 chrome:launch
    • 修改 url 为开发服务器地址,ex.http://localhost:5173/
  • F5 启动调试器
相关推荐
红色的小鳄鱼几秒前
Vue 教程 自定义指令 + 生命周期全解析
开发语言·前端·javascript·vue.js·前端框架·html
coloma20122 分钟前
COCOS代码动态增加刚体和碰撞体的方法
前端·uv
有诺千金6 分钟前
VUE3入门很简单(5)---组件通信(自定义事件)
javascript·vue.js·ecmascript
想逃离铁厂的老铁7 分钟前
Day60 >> 94、城市间货物运输1️⃣ + 95、城市间货物运输 2️⃣ + 96、城市间货物运输 3️⃣
java·服务器·前端
GISer_Jing1 小时前
WebGL跨端兼容实战:移动端适配全攻略
前端·aigc·webgl
daols881 小时前
vue 甘特图 vxe-gantt 自定义任务条插槽模板的用法
vue.js·vxe-gantt
迦南giser1 小时前
前端性能——传输优化
前端
小白_ysf1 小时前
Vue 中常见的加密方法(对称、非对称、杂凑算法)
前端·vue.js·算法
人工智能训练8 小时前
【极速部署】Ubuntu24.04+CUDA13.0 玩转 VLLM 0.15.0:预编译 Wheel 包 GPU 版安装全攻略
运维·前端·人工智能·python·ai编程·cuda·vllm
会跑的葫芦怪8 小时前
若依Vue 项目多子路径配置
前端·javascript·vue.js