• vue2源码学习(1)


    1.dist目录解读


    将vue打包之后,会打包成一个dist目录,在目录下生成了一堆特殊命名的vue.*.js文件,他们分别是什么意思?

     文件分类:

    UMDComonJSES Module
    Fullvue.jsvue.common.jsvue.esm.js
    Runtime-onlyvue.runtime.jsvue.runtime.common.jsvue.runtime.esm.js
    Full(production)vue.min.jsvue.common.prod.js
    Runtime-only(production)vue.runtime.min.jsvue.runtime.common.prod.js

                    

     2.名次解释

    • Full:  这是一个全量的包,包含编译器  (compiler)  和运行时 (runtime)
    • Compiler:编译器,负责将模版字符串(即我们编写的类html愈发的模版代码)编译为JavaScript语法的render函数;
    • Runtime:负责创建Vue实例,渲染函数,patch虚拟DOM等代码,基本上除了编译器之外的代码都属于运行时代码;
    • UMD: 兼容CommonJS和AMD规范,通过CDN引入的vue.js就是UMD规范的代码,包含编译器和运行时。
    • CommonJS:典型的应用比如nodeJS,CommonJS规范的包就是为了给browserify和webpack1这样的旧的打包器使用。他们默认的入口文件位vue.runtime.common.js。
    • ES Module:现代JavaScript规范,ES Module规范的包就是给像webpack和rollup这样的现代打包器使用的。这些打包器默认使用仅包含运行时的vue.runtime.esm.js文件。

    3.运行时(Runtime)+编译器(Compiler)  VS 只包含运行时(Runtime-only)

    如果你需要动态编译模版(比如:将字符串模版传递给template选项,或者通过提供一个挂载元素的方式编写html模版),你将需要编译器,因此需要一个完整的构建包。

    当你使用vue-loader或者vueify时,*.vue的vue文件中的模版在构建时会被编译为JavaScript的渲染函数(render)。因此你不需要包含编译器的全量包,只需使用只包含运行时的包即可;

    只包含运行时的包体积要比全量包的体积小30%。因此尽量使用只包含运行时的包,如果你需要使用全量包,那么你需要进行如下的配置;

    webpack

    1. moudle.exports={
    2. //...
    3. resolve:{
    4. alias:{
    5. 'vue$':'vue/dist/vue.esm.js'
    6. }
    7. }
    8. }

     4.源码目录结构

     

  • 相关阅读:
    logic-flow 使用过程中遇到的bug - 拖动节点到画布的时候,鼠标松开,节点不落在画布,仍旧跟着鼠标走
    Ubuntu离线安装Anaconda
    java编程基础总结——26.File对象
    Linux下安装软件- 概览(推荐给新入职的小白看)
    【校招VIP】java开源框架之netty
    前端面试题之性能优化篇
    java毕业设计大学生第二课堂Mybatis+系统+数据库+调试部署
    从一到无穷大 #13 How does Lindorm TSDB solve the high cardinality problem?
    java并发编程 CountDownLatch详解
    斐波那契数-力扣509-Java
  • 原文地址:https://blog.csdn.net/weixin_44374938/article/details/127805158