vue-cli腳手架使用runtime-only和runtime + compiler的兩種選擇
runtime-only編譯過程:render -> Virtual DOM -> UI
runtime + compiler 編譯過程: template -> AST(抽象語法樹) -> render -> Virtual DOM -> UI
它倆的區別就在於一個有編譯過程,一個無編譯過程,所以runtme-only的代碼量少,體積更小

腳手架初始化時webpack會安裝一些loader和plugin,其中就有vue-loader和vue-template-compiler。vue-loader作用是導入.vue文件,也就是將一些組件導入,而vue-template-compiler的作用是將.vue文件進行編譯,從而將它編譯成不包含模板。
所以runtime-compiler和runtime-only使用.vue文件最終編譯的都是不帶模板的,都可以直接用render函數到虛擬DOM到UI。可能唯一的區別在於,runtime-compiler可以在像main.js這樣的文件中直接用對象創建一個組件,然后用render函數或者components注冊渲染到UI上,而runtime-only沒有編譯過程不能這么干,只能用.vue文件組件化開發。
