解析Vue2 dist 目錄下各個文件的區(qū)別
vue2 經(jīng)過 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 個作用都用在什么場景, 有什么區(qū)別
按照構(gòu)建方式分, 可以分成 完整構(gòu)建(包含獨(dú)立構(gòu)建和運(yùn)行時(shí)構(gòu)建) 和 運(yùn)行時(shí)構(gòu)建
按照規(guī)范分, 可以分成 UMD, CommonJS 和 ES Module
簡單來說, 完整構(gòu)建 和 運(yùn)行時(shí)構(gòu)建的區(qū)別就是, 可不可以用template選項(xiàng), 和文件大一點(diǎn),小一點(diǎn)
vue.common.js
屬于: 基于 CommonJS 的完整構(gòu)建
可以用于 Webpack-1 和 Browserify 之類打包工具
因?yàn)槭峭暾麡?gòu)建, 所以可以使用template選項(xiàng), 如:
import Vue from 'vue' new Vue({ template: ` <div id="app"> <h1>Basic</h1> </div> ` }).$mount('#app')
注意: 用 webpack-1 之類打包工具時(shí), 使用該版本, 需要配置別名, 以 webpack 為例:
{ resolve: { alias: { 'vue$': 'vue/dist/vue.common.js' } } }
vue.esm.js
屬于: 基于 ES Module 的完整構(gòu)建
可以用于 Webpack-2 和 rollup 之類打包工具
因?yàn)槭峭暾麡?gòu)建, 所以可以使用template選項(xiàng), 如:
import Vue from 'vue' new Vue({ template: ` <div id="app"> <h1>Basic</h1> </div> ` }).$mount('#app')
注意: 用 webpack-2 之類打包工具時(shí), 使用該版本, 需要配置別名, 以 webpack 為例:
{ resolve: { alias: { 'vue$': 'vue.esm.js' } } }
vue.js
屬于: 基于 UMD 的完整構(gòu)建
可以用于直接 CDN 引用
因?yàn)槭峭暾麡?gòu)建, 所以可以使用template選項(xiàng), 如:
<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 的運(yùn)行時(shí)構(gòu)建
可以用于 Webpack-1 和 Browserify 之類打包工具
運(yùn)行時(shí)構(gòu)建不包含模板編譯器,因此不支持template選項(xiàng),只能用render選項(xiàng),但即使使用運(yùn)行時(shí)構(gòu)建,在單文件組件中也依然可以寫模板,因?yàn)閱挝募M件的模板會在構(gòu)建時(shí)預(yù)編譯為render函數(shù), render函數(shù)的使用, 請參考: 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 的運(yùn)行時(shí)構(gòu)建
可以用于 Webpack-2 和 rollup 之類打包工具
運(yùn)行時(shí)構(gòu)建不包含模板編譯器,因此不支持template選項(xiàng),只能用render選項(xiàng),但即使使用運(yùn)行時(shí)構(gòu)建,在單文件組件中也依然可以寫模板,因?yàn)閱挝募M件的模板會在構(gòu)建時(shí)預(yù)編譯為render函數(shù), render函數(shù)的使用, 請參考: 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 的運(yùn)行時(shí)構(gòu)建
可以用于直接 CDN 引用
該版本和vue.js類似, 可以用于直接 CDN 引用, 因?yàn)椴话幾g器, 所以不能使用template選項(xiàng), 只能使用render函數(shù)
<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 一樣, 屬于壓縮后版本
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
在vue項(xiàng)目中引入vue-beauty操作方法
在本篇文章里小編給大家分享了關(guān)于在vue項(xiàng)目中引入vue-beauty操作方法,有需要的朋友們跟著學(xué)習(xí)參考下。2019-02-02element-ui中el-input只輸入數(shù)字(包括整數(shù)和小數(shù))
開發(fā)中有時(shí)候需要input只能輸入數(shù)字,下面這篇文章主要給大家介紹了關(guān)于element-ui中el-input只輸入數(shù)字(包括整數(shù)和小數(shù))的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09解決Vue 給mapState中定義的屬性賦值報(bào)錯的問題
這篇文章主要介紹了解決Vue 給mapState中定義的屬性賦值報(bào)錯的問題,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06vue3 微信掃碼登錄及獲取個人信息實(shí)現(xiàn)的三種方法
本文主要介紹了vue3 微信掃碼登錄及獲取個人信息實(shí)現(xiàn)的三種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03Vue觸發(fā)隱藏input file的方法實(shí)例詳解
這篇文章主要介紹了Vue觸發(fā)隱藏input file的方法實(shí)例詳解,非常不錯,具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-08-08Vue自定義v-has指令,做按鈕權(quán)限判斷的步驟
這篇文章主要介紹了Vue自定義v-has指令,做按鈕權(quán)限判斷的步驟,幫助大家更好的理解和學(xué)習(xí)使用vue框架,感興趣的朋友可以了解下2021-04-04解決vue keep-alive 數(shù)據(jù)更新的問題
今天小編就為大家分享一篇解決vue keep-alive 數(shù)據(jù)更新的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09