解析Vue2 dist 目录下各个文件的区别
vue2经过2.2版本升级后,文件变成了8个:
- vue.common.js
- vue.esm.js
- vue.js
- vue.min.js
- vue.runtime.common.js
- vue.runtime.esm.js
- vue.runtime.js
- vue.runtime.min.js
瞬间就懵逼了,这些文件该怎么选?
下面就来说下,这8个作用都用在什么场景,有什么区别
按照构建方式分,可以分成完整构建(包含独立构建和运行时构建)和运行时构建
按照规范分,可以分成UMD,CommonJS和ESModule
简单来说,完整构建和运行时构建的区别就是,可不可以用template选项,和文件大一点,小一点
vue.common.js
属于:基于CommonJS的完整构建
可以用于Webpack-1和Browserify之类打包工具
因为是完整构建,所以可以使用template选项,如:
importVuefrom'vue' newVue({ template:`Basic
注意:用webpack-1之类打包工具时,使用该版本,需要配置别名,以webpack为例:
{ resolve:{ alias:{ 'vue$':'vue/dist/vue.common.js' } } }
vue.esm.js
属于:基于ESModule的完整构建
可以用于Webpack-2和rollup之类打包工具
因为是完整构建,所以可以使用template选项,如:
importVuefrom'vue' newVue({ template:`Basic
注意:用webpack-2之类打包工具时,使用该版本,需要配置别名,以webpack为例:
{ resolve:{ alias:{ 'vue$':'vue.esm.js' } } }
vue.js
属于:基于UMD的完整构建
可以用于直接CDN引用
因为是完整构建,所以可以使用template选项,如:
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
importVuefrom'vue' newVue({ render:function(h){ returnh('h1','HiVue') } }).$mount('#app')
vue.runtime.esm.js
属于:基于ESModule的运行时构建
可以用于Webpack-2和rollup之类打包工具
运行时构建不包含模板编译器,因此不支持template选项,只能用render选项,但即使使用运行时构建,在单文件组件中也依然可以写模板,因为单文件组件的模板会在构建时预编译为render函数,render函数的使用,请参考:http://cn.vuejs.org/v2/guide/render-function.html
importVuefrom'vue' newVue({ render:function(h){ returnh('h1','HiVue') } }).$mount('#app')
vue.runtime.js
属于:基于UMD的运行时构建
可以用于直接CDN引用
该版本和vue.js类似,可以用于直接CDN引用,因为不包含编译器,所以不能使用template选项,只能使用render函数
vue.runtime.min.js
和vue.runtime.js一样,属于压缩后版本
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。