Vue2中dist目录下各个文件的区别是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
vue2 dist文件夹中有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 个作用都用在什么场景, 有什么区别。
Vue项目按照构建方式分, 可以分成 完整构建 和 运行时构建。
按照规范分, 可以分成 UMD, CommonJS 和 ES Module。
简单来说, 完整构建 和 运行时构建的区别就是, 可不可以用template选项, 和文件大一点,小一点。而按照不同的规范可以运行在不同的开发环境中。
vue.common.js属于: 基于 CommonJS 的完整构建可以用于 Webpack-1 和Browserify 之类打包工具,因为是完整构建, 所以可以使用template选项, 如:
import Vue from 'vue'
new Vue({
template: `
<div id="app">
<h2>Basic</h2>
</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">
<h2>Basic</h2>
</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">
<h2>Hi Vue</h2>
</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('h2', 'Hi Vue')
}
}).$mount('#app')
vue.runtime.esm.js
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('h2', '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('h2', 'Hi Vue')
}
}).$mount('#app')
</script>
vue.runtime.min.js和 vue.runtime.js 一样, 属于压缩后版本
总之记住一句话,完整构建时是可以使用template选项的,而运行时构建是不可以使用的,但是不论哪一种,单文件组件都可以编译为组件。 UMD规范适用于浏览器直接引用,不用打包。CommonJS 和 ES Module规范都需要类似webpack和rollup之类的打包工具配合才能使用。
这里留给大家一个思考题,在用vue-cli构建vue项目时,一般会有一个选项,如下:
关于Vue2中dist目录下各个文件的区别是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。