vue源码初调试(一)vue查找入口文件以及调试初始化

前言:

记录调试vue源码的方法,理解vue的核心:系统性的理解一个好的框架的产生。我自己的学习方法是,最先概括性的全局了解一下,然后针对各个知识点搜集知识逐个攻破,得到正反馈。

看完这篇笔记可以让你清楚的知道怎么调试vue 然后收藏它 当你有时间 打开vue源码开始调试它。

准备:

1.vue源码:2.6.14 github拉取源码

2.使用Rollup 打包工具 比webpack更轻便 rollup只处理js文件 在这些库中更方便 vue就是用的rollup

3.给package.json 的dev命令设置 sourcemap 方便调试源码 查看报错信息

目标:

了解怎么看源码;学会查找入口文件;熟悉vue的入口文件;vue的实例成员;vue的静态成员;

这篇文章会涉及到许多知识:我自己的建议是结合着实例去掌握自己不会不懂的知识。再针对不懂的知识进行逐个击破:

阅读源码的时候,或者是做项目的时候,会遇到很多自己不懂的知识点 或者不熟悉的知识点,或者出现问题。不过不要怕,很多问题都是已经遇到过得,有了答案,很多知识点都是前人已经总结好的,我们只需要迈出去那一小步,去看去学习去总结。一个一个的攻克会给你带来成就感的。

1阅读源码前准备

这个小标题下涉及到的知识 以及可以延伸的知识点,感兴趣的可以在主任务外自由开发分支:

1.打包工具的区别:Rollup、Webpack、Gulp、Grunt

2.打包后不同文件夹后缀的含义:xxx.js xxx.min.js xxx.runtime.js xxx.js.map

3.sourcemap的含义;runtime的含义 对应第二个知识点

4.npm script 脚本传参的含义:–sourcemap

下载好源码后:

1.安装依赖
npm i 
2.设置 sourcemap
"dev": "rollup -w -c scripts/config.js --sourcemap --environment TARGET:web-full-dev",
3.启动项目:
npm run dev 

01.png
可以看到这个打包的js platforms\web\entry-runtime-with-compiler.js

平台相关目录下的web平台下的entry-runtime-with-compiler版本打包的jis runtime 是运行时版本(稍后解释)

4.调试案例:

随便找个案例:

examples/grid/index.html 将第八行的vue.min.js 改为vue.js 方便开发环境查看控制台的警告

02.png

5.1运行 npm run build

把vue的不同版本js 都打包出来

03.png

这里的vue.js.map 就是之前我们 npm dev 的时候 在 npm script里 添加了–sourcemap参数 是源文件的信息文件记录

dist文件里的readme.md 对vue的不同版本解释

04.png

Explanation of Build Files 编译文件说明
UMD CommonJS ES Module
Full vue.js vue.common.js vue.esm.js
Runtime-only vue.runtime.js vue.runtime.common.js vue.runtime.esm.js
Full (production) vue.min.js
Runtime-only (production) vue.runtime.min.js

Terms

  • Full: builds that contain both the compiler and the runtime. (包含编译器和运行时的构建。)
  • 完整版 同时包含编译器和运行时的版本
  • Compiler: code that is responsible for compiling template strings into JavaScript render functions.(负责将模板字符串编译成JavaScript渲染函数的代码。)
  • 编译器 用来将模板字符串编译成JavaScript渲染函数的代码 体积大 体积大 效率低(就是我们new Vue时 传递的template 把这个转换成render函数 我们可以传递template参数 和 render函数 )
  • Runtime: code that is responsible for creating Vue instances, rendering and patching virtual DOM, etc. Basically everything minus the compiler.(负责创建Vue实例、渲染和修补虚拟DOM等的代码。基本上除了编译器。)
  • 运行时 体积小 效率高 去除了编译器的代码
  • UMD: UMD builds can be used directly in the browser via a <script> tag. The default file from Unpkg CDN at https://unpkg.com/vue is the Runtime + Compiler UMD build (vue.js).(UMD构建可以通过
© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容