溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

解析Vue2 dist 目錄下各個(gè)文件的區(qū)別

發(fā)布時(shí)間:2020-08-28 09:07:31 來(lái)源:腳本之家 閱讀:172 作者:M.M.F 欄目:web開發(fā)

vue2 經(jīng)過(guò) 2.2 版本升級(jí)后, 文件變成了 8 個(gè):

  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

瞬間就懵逼了, 這些文件該怎么選?

下面就來(lái)說(shuō)下, 這 8 個(gè)作用都用在什么場(chǎng)景, 有什么區(qū)別

按照構(gòu)建方式分, 可以分成 完整構(gòu)建(包含獨(dú)立構(gòu)建和運(yùn)行時(shí)構(gòu)建) 和 運(yùn)行時(shí)構(gòu)建

按照規(guī)范分, 可以分成 UMD, CommonJS 和 ES Module

簡(jiǎn)單來(lái)說(shuō), 完整構(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">
   <h2>Basic</h2>
  </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">
   <h2>Basic</h2>
  </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">
   <h2>Hi Vue</h2>
  </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件的模板會(huì)在構(gòu)建時(shí)預(yù)編譯為render函數(shù), render函數(shù)的使用, 請(qǐng)參考: 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

屬于: 基于 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件的模板會(huì)在構(gòu)建時(shí)預(yù)編譯為render函數(shù), render函數(shù)的使用, 請(qǐng)參考: 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 的運(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('h2', 'Hi Vue')
 }
}).$mount('#app')
</script>

vue.runtime.min.js

和 vue.runtime.js 一樣, 屬于壓縮后版本

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI