当前位置: 移动技术网 > IT编程>脚本编程>vue.js > 解析Vue2 dist 目录下各个文件的区别

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

2017年12月08日  | 移动技术网IT编程  | 我要评论
vue2 经过 2.2 版本升级后, 文件变成了 8 个: vue.common.js vue.esm.js vue.js vue.min.js

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函数的使用, 请参考:

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函数的使用, 请参考:

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 一样, 属于压缩后版本

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网