如何本地调试vue core源码

对于想要在本地调试 vue core 源码的同学可以看看。

git clone vuejs/core仓库

下载本文调试的仓库 vuejs/core: github.com/vuejs/core

项目初始化

  • nvm add 22.14.0 安装 node 22
  • corepack pnpm install 安装指定版本的 pnpm
  • 全局安装ni 工具(下一步会用到): npm i -g @antfu/ni

  • 本地启动 vue: nr dev: vue/dist目录下是实时构建的代码

新建 index.html

  • 新建一个最简单的index.html页面,并引入vue.global.js,参考代码如下:
html 复制代码
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Vue Simple HTML</title>
  </head>
  <body>
    <div id="app"></div>
    <script src="/packages/vue/dist/vue.global.js"></script>
    <script>
      const app = Vue.createApp({
        template: `
          <h1>{{ message }}</h1>
          <button @click="increment">Count is: {{ count }}</button>
        `,
        setup() {
          const message = Vue.ref("Hello Vue!");
          const count = Vue.ref(1);
          const increment = () => {
            count.value++;
          };
          return { message, count, increment };
        },
      });
      app.mount("#app");
    </script>
  </body>
</html>

注意,script引入的是本地的 vue.global.js 文件,需要设置一下 vite.config.js:

ts 复制代码
// vite.config.js
import path from "path";

export default {
  publicDir: path.resolve(__dirname, "../core/"),
};

本地预览和调试

上述步骤完成后,在index.html所属目录下运行 npx vite,打开预览链接:http://localhost:5173/

接下来,在代码文件加断点:packages/reactivity/src/ref.ts,刷新页面即可进入调试模式了

完。

相关推荐
加减法原则8 小时前
Vue3 组合式函数:让你的代码复用如丝般顺滑
前端·vue.js
天若有情6739 小时前
React、Vue、Angular的性能优化与源码解析概述
vue.js·react.js·angular.js
草巾冒小子9 小时前
vue3实战:.ts文件中的interface定义与抛出、其他文件的调用方式
前端·javascript·vue.js
eggcode10 小时前
Vue+Openlayers加载OSM、加载天地图
vue.js·openlayers·webgis
武昌库里写JAVA13 小时前
vue3面试题(个人笔记)
java·vue.js·spring boot·学习·课程设计
lalalalalalalala14 小时前
开箱即用的 Vue3 无限平滑滚动组件
前端·vue.js
前端Hardy14 小时前
8个你必须掌握的「Vue」实用技巧
前端·javascript·vue.js
久爱@勿忘15 小时前
第二章:创建登录页面
前端·vue.js·elementplus
Jinxiansen021115 小时前
Vue 3 中父子组件双向绑定的 4 种方式
javascript·vue.js·ecmascript
木依15 小时前
Vue3 Element plus table有fixed列时错行
javascript·vue.js·elementui