解析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 相关文章推荐
用Javascript实现UTF8编码转换成gb2312编码
Dec 22 Javascript
JavaScript 构造函数 面相对象学习必备知识
Jun 09 Javascript
引用外部js乱码问题分析及解决方案
Apr 12 Javascript
在页面中js获取光标/鼠标的坐标及光标的像素坐标
Nov 11 Javascript
js购物车实现思路及代码(个人感觉不错)
Dec 23 Javascript
javascript对中文按照拼音排序代码
Aug 20 Javascript
jQuery平滑旋转幻灯片特效代码分享
Sep 07 Javascript
实例讲解JS中setTimeout()的用法
Jan 28 Javascript
移动端横屏的JS代码(beta)
May 16 Javascript
vue 实现剪裁图片并上传服务器功能
Mar 01 Javascript
Vue使用轮询定时发送请求代码
Aug 10 Javascript
IDEA配置jQuery, $符号不再显示黄色波浪线的问题
Oct 09 jQuery
浅谈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 adodb连接不同数据库
2009/03/19 PHP
php打造属于自己的MVC框架
2012/03/07 PHP
PHP Directory 函数的详解
2013/03/07 PHP
PHP实现把文本中的URL转换为链接的auolink()函数分享
2014/07/29 PHP
javascript学习随笔(使用window和frame)的技巧
2007/03/08 Javascript
(JS实现)MapBar中坐标的加密和解密的脚本
2007/05/16 Javascript
关于Mozilla浏览器不支持innerText的解决办法
2011/01/01 Javascript
javascript学习笔记(七)利用javascript来创建和存储cookie
2011/04/08 Javascript
javascript 拖动表格行实现代码
2011/05/05 Javascript
JavaScript中“过于”犀利地for/in循环使用示例
2013/10/22 Javascript
jquery实现图片按比例缩放示例
2014/07/01 Javascript
JavaScript运算符小结
2015/06/03 Javascript
jquery判断当前浏览器的实现代码
2015/11/07 Javascript
详解jQuery移动页面开发中的ui-grid网格布局使用
2015/12/03 Javascript
JSON对象转化为字符串详解
2017/08/11 Javascript
Vue.js项目模板搭建图文教程
2017/09/20 Javascript
bootstrap中日历范围选择插件daterangepicker的使用详解
2018/04/17 Javascript
JS实现的视频弹幕效果示例
2018/08/17 Javascript
代码实例ajax实现点击加载更多数据图片
2018/10/12 Javascript
原生微信小程序开发中 redux 的使用详解
2021/02/18 Javascript
python 地图经纬度转换、纠偏的实例代码
2018/08/06 Python
在Django admin中编辑ManyToManyField的实现方法
2019/08/09 Python
Win10下python 2.7与python 3.7双环境安装教程图解
2019/10/12 Python
Python如何把多个PDF文件合并代码实例
2020/02/13 Python
详解Python修复遥感影像条带的两种方式
2020/02/23 Python
python代码区分大小写吗
2020/06/17 Python
如何基于Python代码实现高精度免费OCR工具
2020/06/18 Python
python实现学生成绩测评系统
2020/06/22 Python
html5 canvas移动浏览器上实现图片压缩上传
2016/03/11 HTML / CSS
HTML5公共页面提取作为公用代码的方法
2020/06/30 HTML / CSS
阿里云:Aliyun.com
2017/02/15 全球购物
关于VPN
2012/06/10 面试题
趣味活动策划方案
2014/02/08 职场文书
2014年迎新年活动方案
2014/02/19 职场文书
党的群众路线教育实践活动个人对照检查材料(乡镇)
2014/11/05 职场文书
【海涛解说】暗牧也疯狂,牛蛙成配角
2022/04/01 DOTA