如何使用 VS Code 调试 Vue 2.x 源码✨

688 阅读2分钟

摘要

本文主要介绍如何使用 VS Code 编辑器阅读和设置断点调试 Vue 源码。文章所提到的 Vue 源码,指的是 git 分支为 2.6,package 包版本号为 2.5.21 的 Vue 源码。


面向对象

  • 使用过 Vue 开发,并对 Vue 源码感兴趣的人(兴趣使然)。

本文作者是最近才开始阅读 Vue 源码,所以文章里面不会涉及 Vue 源码的分析🤣。不过也想在此立个 flag,希望接下来有时间的话可以整理出一个 Vue 源码分析的 thread。

上手准备

开发工具清单

  • Vue 源码
  • VS Code + vscode-flow-ide 扩展
  • Chrome 浏览器
  • pnpm

Vue 源码须知

  • Vue 是用 JavaScript 编写的,类型系统依赖于 flow 检查器(类 TypeScript 的工具)
  • 编译构建工具是 rollup

操作步骤

一、命令行操作

# clone 我 fork 之后的代码
git clone https://github.com/rhzone/vue.git
cd vue
pnpm i
# 构建带 compiler 的 Vue 运行时
npm run dev:esm-full
cd vite-example
pnpm i

二、断点调试例子

打开 src/core/instance/init.js 文件,在 19 行设置一个断点

image.png

选择运行 all 的 debug 配置,然后就可以开始愉快的调试啦🎉。

image.png

三、安装 vscode-flow-ide 扩展插件

marketplace.visualstudio.com/items?itemN…

image.png

为什么要 fork 我的代码,而不是直接用官方的 Vue 仓库代码?

目的只有一个:方便阅读调试,因为我主要做了以下修改

  1. 将包管理器改为 pnpm,使用其 workspace 特性
  2. 新增 vite-example 文件夹,方便从实际项目开发的角度调试 Vue 源码
  3. 配置 jsconfig 的 paths alias 方便代码跳转
  4. 新增 .vscode/launch.json 用于调试配置
  5. 新增 .vscode/settings.json 用于配置隐藏或折叠不关心的文件

为什么看起来少了很多源码文件?

  • 原因见上面第 5 点。可以通过注释 settings.json 里面的 files.excludeexplorer.experimental.fileNesting.patterns JSON 字段来还原。

郑重声明: vite-example 里面的代码风格不是最佳实践的,有些写法仅是因为作者想偷懒写的,请不要轻易模仿并用于实际的生产项目。

阅读建议