解析Vue2 dist 目录下各个文件的区别


Posted in Javascript onNovember 22, 2017

vue2 经过 2.2 版本升级后, 文件变成了 8 个:

  1. vue.common.js
  2. vue.esm.js
  3. vue.js
  4. vue.min.js
  5. vue.runtime.common.js
  6. vue.runtime.esm.js
  7. vue.runtime.js
  8. vue.runtime.min.js

瞬间就懵逼了, 这些文件该怎么选?

下面就来说下, 这 8 个作用都用在什么场景, 有什么区别

按照构建方式分, 可以分成 完整构建(包含独立构建和运行时构建) 和 运行时构建

按照规范分, 可以分成 UMD, CommonJS 和 ES Module

简单来说, 完整构建 和 运行时构建的区别就是, 可不可以用template选项, 和文件大一点,小一点

vue.common.js

属于: 基于 CommonJS 的完整构建

可以用于 Webpack-1 和 Browserify 之类打包工具

因为是完整构建, 所以可以使用template选项, 如:

import Vue from 'vue'
new Vue({
 template: `
  <div id="app">
   <h1>Basic</h1>
  </div>
 `
}).$mount('#app')

注意: 用 webpack-1 之类打包工具时, 使用该版本, 需要配置别名, 以 webpack 为例:

{
 resolve: {
  alias: {
   'vue$': 'vue/dist/vue.common.js'
  }
 }
}

vue.esm.js

属于: 基于 ES Module 的完整构建

可以用于 Webpack-2 和 rollup 之类打包工具

因为是完整构建, 所以可以使用template选项, 如:

import Vue from 'vue'
new Vue({
 template: `
  <div id="app">
   <h1>Basic</h1>
  </div>
 `
}).$mount('#app')

注意: 用 webpack-2 之类打包工具时, 使用该版本, 需要配置别名, 以 webpack 为例:

{
 resolve: {
  alias: {
   'vue$': 'vue.esm.js'
  }
 }
}

vue.js

属于: 基于 UMD 的完整构建

可以用于直接 CDN 引用

因为是完整构建, 所以可以使用template选项, 如:

<script src="https://unkpg.com/vue/dist/vue.js"></script>
<script>
new Vue({
 template: `
  <div id="app">
   <h1>Hi Vue</h1>
  </div>
 `
}).$mount('#app')
</script>

vue.min.js

和 vue.js 一样, 属于压缩后版本

vue.runtime.common.js

属于: 基于 CommonJS 的运行时构建

可以用于 Webpack-1 和 Browserify 之类打包工具

运行时构建不包含模板编译器,因此不支持template选项,只能用render选项,但即使使用运行时构建,在单文件组件中也依然可以写模板,因为单文件组件的模板会在构建时预编译为render函数, render函数的使用, 请参考: http://cn.vuejs.org/v2/guide/render-function.html

import Vue from 'vue'
new Vue({
 render: function(h){
  return h('h1', 'Hi Vue')
 }
}).$mount('#app')

vue.runtime.esm.js

属于: 基于 ES Module 的运行时构建

可以用于 Webpack-2 和 rollup 之类打包工具

运行时构建不包含模板编译器,因此不支持template选项,只能用render选项,但即使使用运行时构建,在单文件组件中也依然可以写模板,因为单文件组件的模板会在构建时预编译为render函数, render函数的使用, 请参考: http://cn.vuejs.org/v2/guide/render-function.html

import Vue from 'vue'
new Vue({
 render: function(h){
  return h('h1', 'Hi Vue')
 }
}).$mount('#app')

vue.runtime.js

属于: 基于 UMD 的运行时构建

可以用于直接 CDN 引用

该版本和vue.js类似, 可以用于直接 CDN 引用, 因为不包含编译器, 所以不能使用template选项, 只能使用render函数

<script src="https://unkpg.com/vue/dist/vue.runtime.js"></script>
<script>
new Vue({
 render: function(h){
  return h('h1', 'Hi Vue')
 }
}).$mount('#app')
</script>

vue.runtime.min.js

和 vue.runtime.js 一样, 属于压缩后版本

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
在页面上点击任一链接时触发一个事件的代码
Apr 07 Javascript
Three.js源码阅读笔记(物体是如何组织的)
Dec 27 Javascript
js中的push和join方法使用介绍
Oct 08 Javascript
JS中把字符转成ASCII值的函数示例代码
Nov 21 Javascript
javascript实现input file上传图片预览效果
Dec 31 Javascript
jQuery替换节点用法示例(使用replaceWith方法)
Sep 08 Javascript
浅谈js停止事件冒泡 阻止浏览器的默认行为(阻止超连接 #)
Feb 08 Javascript
Vue computed计算属性的使用方法
Jul 14 Javascript
vue + element-ui实现简洁的导入导出功能
Dec 22 Javascript
解决Vue不能检测数组或对象变动的问题
Feb 24 Javascript
js限制input只能输入有效的数字(第一个不能是小数点)
Sep 28 Javascript
一文读懂vue动态属性数据绑定(v-bind指令)
Jul 20 Javascript
浅谈Vuex@2.3.0 中的 state 支持函数申明
Nov 22 #Javascript
echarts学习笔记之图表自适应问题详解
Nov 22 #Javascript
arcgis for js栅格图层叠加(Raster Layer)问题
Nov 22 #Javascript
在vue中添加Echarts图表的基本使用教程
Nov 22 #Javascript
ActiveX控件的使用-js实现打印超市小票功能代码详解
Nov 22 #Javascript
前端必备插件之纯原生JS的瀑布流插件Macy.js
Nov 22 #Javascript
vue.js模仿京东省市区三级联动的选择组件实例代码
Nov 22 #Javascript
You might like
关于PHP的相似度计算函数:levenshtein的使用介绍
2013/04/15 PHP
php+redis在实际项目中HTTP 500: Internal Server Error故障排除
2017/02/05 PHP
PHP操作Postgresql封装类与应用完整实例
2018/04/24 PHP
PHP封装XML和JSON格式数据接口操作示例
2019/03/06 PHP
phpinfo的知识点总结
2019/10/10 PHP
javascript 极速 隐藏/显示万行表格列只需 60毫秒
2009/03/28 Javascript
jQuery 核心函数以及jQuery对象
2010/03/23 Javascript
设置iframe的document.designMode后仅Firefox中其body.innerHTML为br
2012/02/27 Javascript
JS 添加千分位与去掉千分位的示例
2013/07/11 Javascript
Javascript模拟加速运动与减速运动代码分享
2014/12/11 Javascript
深入分析jQuery的ready函数是如何工作的(工作原理)
2015/12/17 Javascript
使用JavaScript脚本判断页面是否在微信中被打开
2016/03/06 Javascript
JavaScript函数内部属性和函数方法实例详解
2016/03/17 Javascript
浅谈js中的延迟执行和定时执行
2016/05/31 Javascript
js css实现垂直方向自适应的三角提示菜单
2016/06/26 Javascript
javaScript字符串工具类StringUtils详解
2017/12/08 Javascript
了解前端理论:rscss和rsjs
2019/05/23 Javascript
JavaScript如何获取一个元素的样式信息
2019/07/29 Javascript
微信小程序实现上传照片代码实例解析
2020/08/04 Javascript
vue实现lodop打印功能的示例
2020/11/11 Javascript
React实现todolist功能
2020/12/28 Javascript
Python脚本判断 Linux 是否运行在虚拟机上
2015/04/25 Python
常见的python正则用法实例讲解
2016/06/21 Python
使用pandas对矢量化数据进行替换处理的方法
2018/04/11 Python
对Python使用mfcc的两种方式详解
2019/01/09 Python
python中的decimal类型转换实例详解
2019/06/26 Python
python使用numpy中的size()函数实例用法详解
2021/01/29 Python
轻松掌握CSS3中的字体大小单位rem的使用方法
2016/05/24 HTML / CSS
美国最大的骑马用品零售商:HorseLoverZ
2017/01/12 全球购物
WiFi云数码相框:Nixplay
2018/07/05 全球购物
采购员岗位职责
2013/11/15 职场文书
晚宴邀请函范文
2014/01/15 职场文书
2015年保送生自荐信
2015/03/24 职场文书
简短清晨问候语
2015/11/10 职场文书
Python Pandas模块实现数据的统计分析的方法
2021/06/24 Python
html+css实现环绕倒影加载特效
2021/07/07 HTML / CSS