首页 > 编程语言 >1. Vue3源码解析之 源码调试

1. Vue3源码解析之 源码调试

时间:2024-01-16 16:13:20浏览次数:32  
标签:文件 vue ## 源码 build Vue3 调试 compiler

前言

本系列基于 Vue 3.2.37 版本分析,可直接前往下载。

使用步骤

// 1、安装 pnpm
npm i -g pnpm

// 2、安装依赖
pnpm i

// 3、package.json 修改配置 末尾添加 -s 开启sourcemap
"build": "node scripts/build.js -s"

// 添加 `-s` 原理是在 `scripts/build.js` 文件下 设置 `sourceMap`,
// 通过 `const args = require('minimist')(process.argv.slice(2))` 获取到配置数据
// 这里使用了 `minimist` 包,将 node 命令解析成 对象数据

// 4、打包生成 vue 文件
npm run build

// 5、packages/vue/examples 文件下创建 learning 文件夹
mkdir learning

// 6、learning 文件夹下创建 html 文件
mkdir index.html

// 7、引入 vue 文件, global 文件为浏览器引入格式
<script src="../../dist/vue.global.js"></script>

// 8、案例
<body>
    <div id="app"></div>
    <script>
      const { reactive, effect } = Vue

      const obj = reactive({
        name: 'jc'
      })

      effect(() => {
        document.querySelector('#app').innerHTML = obj.name
      })

      setTimeout(() => {
        obj.name = 'cc'
      }, 2000)
    </script>
</body>

// 9、F12 打开浏览器进行 debugger 调试

调试

debugger.png

目录

核心文件均在 packages 目录下

## compiler 编译时

- compiler-core 核心
- compiler-dom 浏览器编译时
- compiler-sfc vue 文件
- compiler-ssr 服务端

## reactivity 响应式

- reactivity
  - ref
  - reactive

## runtimer 运行时

- runtime-core 核心
- runtime-dom 浏览器运行时

## shared 共享工具

## vue

src/index.ts 入口

标签:文件,vue,##,源码,build,Vue3,调试,compiler
From: https://www.cnblogs.com/wp-leonard/p/17967895

相关文章

  • 2. Vue3源码解析之 reactive
    前言我们知道Vue3中声明响应式是通过reactive和ref这两个函数,下面我们通过案例先来看下reactive是如何实现的。案例首先引入reactive和effect两个函数,之后声明obj响应式对象,接着又执行effect函数,该函数传入了一个匿名函数,最后两秒后又修改obj.name值。<!DOC......
  • 3. Vue3源码解析之 ref
    前言我们知道Vue3中声明响应式是通过reactive和ref这两个函数,上篇我们分析了reactive的实现原理,接下来我们再来看下ref是如何实现的。案例首先引入ref和effect两个函数,之后声明name响应式数据,接着又执行effect函数,该函数传入了一个匿名函数,最后两秒后又修改......
  • 在VS Code中启动Edge浏览器调试Vue项目
    最近维护一个Vue2.x的老项目,网上的资料介绍在VS中调试前端代码都是使用Chrome浏览器,但我没有装Chrome浏览器,想在VSCode中直接调试Vue代码,百度了很多资料,尝试了好几种方案,终于找到简单可行的方法。根据微软官方的资料,如果想在VSCode中使用Edge浏览器进行调试,可以安装Microsoft......
  • Delphi中 调试 指针
             p1.Free;释放堆中数据,最终无内存泄漏,只是加深记忆;有些时候灵活应对;......
  • GBD调试之执行外部命令与结果输出(十五)
    相关命令如下所示:shell/!:执行shell命令setloggingon/off:启用/禁用结果输出setloggingfilefilename:设置输出文件setloggingoverwrite:覆盖输出文件,默认为追加shell命令的使用:启用/禁用结果输出:设置输出文件: ......
  • 初始化一个vite+vue3的前端项目要做的额外的事儿
    添加.editorconfig文件#http://editorconfig.orgroot=true[*]charset=utf-8indent_style=spaceindent_size=4end_of_line=lfinsert_final_newline=truetrim_trailing_whitespace=true[*.md]insert_final_newline=falsetrim_trailing_whitespace......
  • YOLOv8原理与源码解析(视频教程)
    课程链接:https://edu.51cto.com/course/35522.html【为什么要学习这门课】Linux创始人LinusTorvalds有一句名言:Talkischeap.Showmethecode.冗谈不够,放码过来!代码阅读是从基础到提高的必由之路。YOLOv8基于先前YOLO版本的成功,引入了新功能和改进,进一步提升性能和灵活性。......
  • JMeter 源码解读 - HashTree
    背景:在JMeter中,HashTree是一种用于组织和管理测试计划元素的数据结构。它是一个基于LinkedHashMap的特殊实现,提供了一种层次结构的方式来存储和表示测试计划的各个组件。HashTree的特点如下:层次结构:HashTree使用树状结构来组织测试计划元素。每个节点都可以包含子节点......
  • HashMap源码随笔
    源码第一块:概述:Map接口的基于哈希表的实现。此实现提供所有可选的映射操作,并允许null值和null键。(HashMap类大致等同于Hashtable,只不过它是不同步的,并且允许null。此类不保证地图的顺序;特别是,它不保证订单会随着时间的推移保持不变。此实现为基本操作(get和put)提供恒......
  • 【App Service】遇见本地访问Azure App Service应用慢或者是调用第三方接口慢的调试小
    问题描述当应用部署到微软云Azure后,如果遇见本地访问AzureAppService应用慢或者是调用第三方接口慢的时候,有什么好的调试方法呢?来判断具体时那一段请求耗时呢?问题解答当然浏览器本身的开发者工具(F12)就是一种非常好的工具。当时,当安装浏览器不方便时,curl就是一个非常好......