Skip to content
On this page

使用VSCode调试源码

之前发布在掘金,移到 Github 后发现图片直接被 ban 了,emm...

https://juejin.cn/post/7300118821532172303 (后面再把图片移过来把)

1. clone vue3源码到本地

bash
git clone https://github.com/vuejs/core.git vue3

2. 安装依赖

使用 vscode 打开 vue3 项目,在项目中的 .github/contributing.md 文件中,我们可以看到Vue官方对源码架构的介绍和对开发的一些介绍。

#development-setup 可以知道 Node.js 的版本需要满足 >= 18.12 且 pnpm 的版本需要满足 >= 8,并且 Vue3 的依赖管理是基于 pnpm 的,如果没有就执行 npm i pnpm -g 安装一下。

安装依赖:

bash
pnpm install

3. 运行项目

#scripts 介绍了vue3提供的打包

看到 nr dev (需要安装 ni npm 包),该命令等价于 npm run dev

image.png

执行该命令:

bash
# 加上 -s 参数会生成对应的 source map 文件,用于 debug 调试
npm run dev -s

然后再 packages/vue 目录下会看到生成了 dist 目录,这就是打包后的vue3源码,vue.global.js 文件可以直接用于 HTML

image.png

4. 跑个 demo

packages/vue/examples 目录下,有很多官方提供的示例,可以看到它们都是一些 HTML 文件,并且都引用了 vue.global.js 文件

html
<script src="../../dist/vue.global.js"></script>
<div id="demo">...</div>

新建 debug 目录,在该目录下新建 hello.html,内容如下:

html
<script src="../../dist/vue.global.js"></script>
<div id="app">
    <div>{{ msg }}</div>
</div>
<script>
const { createApp } = Vue
createApp({
    setup() {
        return {
            msg: 'Hello Vue.js'
        }
    }
}).mount('#app')
</script>

执行 npm run serve,会在本地开启一个 http 服务:

Serving!                                       
      - Local:    http://localhost:60741             
      - Network:  http://192.168.152.195:60741       
      This port was picked because 3000 is in use.   
      Copied local address to clipboard!

在浏览器打开该地址,可以看到:

image.png

5. 使用 VSCode debug 调试

image.png

image.png

添加配置,选择 Chomre: Launch,然后修改配置的 nameurl

json
"configurations": [
    {
      "name": "Hello Vue.js",
      "request": "launch",
      "type": "chrome",
      "url": "http://localhost:60741", // 上面你本地起的 http 服务地址
      "webRoot": "${workspaceFolder}"
    },
    ...
]

打一个断点,点击开始调试

image.png

打开 hello.html 文件

image.png

可以看到,成功进入断点

image.png

接下来就可以愉快的调试源码了!