不急,從2個維度去理解這8個版本。vue
完整版: 包括編譯器和運行時的版本 編譯器: vue裏用的<template></template>語法是須要被編譯的 運行時: 用來建立Vue實例、渲染、處理虛擬Dom,能夠理解爲除了編譯器剩下的代碼都屬於運行時
若是你須要使用template的語法,就須要編譯器,那麼就要使用完整版webpack
用了.vue文件的大多數狀況下,你能夠用運行時版本
當你使用vue-loader或vueify的時候, *.vue文件內部會預編譯成JS,因此你在最終打好的包裏,
其實是不須要編譯器的,因此這種狀況,應該用運行時版本,畢竟運行時版本的體積比完整版要小30%web
若是我必定要用完整版的呢? 如何選擇版本呢?
你須要在webpack裏配置aliasvue-cli
module.exports = { // ... resolve: { alias: { 'vue$': 'vue/dist/vue.esm.js' // 用 webpack 1 時需用 'vue/dist/vue.common.js' } } }
vue源碼會根據process.env.NODE_ENV來判斷是用生產仍是開發環境的代碼
webpack裏能夠有自帶的 new webpack.DefinePlugin()來設置process.env.NODE_ENV工具
相似這樣spa
new webpack.DefinePlugin({ 'process.env': env }),