溫馨提示×

溫馨提示×

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

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

用vue-cli初始化項目帶編譯器和不帶編譯器的區(qū)別有哪些

發(fā)布時間:2021-12-03 17:24:53 來源:億速云 閱讀:120 作者:小新 欄目:大數(shù)據(jù)

這篇文章主要為大家展示了“用vue-cli初始化項目帶編譯器和不帶編譯器的區(qū)別有哪些”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“用vue-cli初始化項目帶編譯器和不帶編譯器的區(qū)別有哪些”這篇文章吧。

在用vue-cli初始化項目的時候,選擇帶編輯器和不帶編輯器的區(qū)別,如圖:

用vue-cli初始化項目帶編譯器和不帶編譯器的區(qū)別有哪些

圖中第一句用紅框圈住的話:Runtime+ Compiler:....

第二句:Runtime-only:.......

從字面意思就可以看出初始化項目過程中,選第一行的話生成的vue項目就是帶編譯器的,選第二句的話就是不帶編譯器的,同時它們都是選擇的運行時版本。

首先咱們測試一下,假如用vue-cli生成項目時,在遇到Vue Build選項時,選擇的是第二行,那你的項目中引入的vue版本應(yīng)該是Runtime-only不帶編輯器的版本,回憶一下上一篇文章,支持運行時并且不帶編譯器的版本是哪個呢?

可以發(fā)現(xiàn)是vue.runtime.esm.js和vue.runtime.common.js這倆版本,這倆啥區(qū)別呢?

前者遵循commonjs模塊化規(guī)范,后者支持es6模塊化規(guī)范,最新版本的vue-cli構(gòu)建vue項目用的是webpack2,而webpack2支持以上兩種規(guī)范,如果你用vue-cli初始化項目的時候選擇第二行,那項目中引入的版本為vue.runtime.esm.js或者是vue.runtime.common.js

驗證一下,打開vue項目中的package.json查看main屬性如下:

用vue-cli初始化項目帶編譯器和不帶編譯器的區(qū)別有哪些

那如果初始化過程中選擇的是第一行呢,運行時帶編譯器。結(jié)果生成的vue項目中使用的是哪一個版本的vue呢?

回憶一下上一篇文章,支持運行時并且?guī)Ь幾g器的是8個文件中的哪一個呢?

可以發(fā)現(xiàn)vue.esm.js與vue.common.js這兩個版本都帶編譯器并支持運行時的,那選哪一個呢,其實都可以。

那我們驗證一下,選擇第一行后生成的項目中vue的安裝包的package.json中查看main屬性:

用vue-cli初始化項目帶編譯器和不帶編譯器的區(qū)別有哪些

發(fā)現(xiàn)結(jié)果不對,main屬性還是vue.runtime.common.js,怎么會這樣呢?原來vue-cli在初始化項目后,修改了一下vue項目導(dǎo)入得別名,當(dāng)在項目中導(dǎo)入vue時,導(dǎo)入的是vue的別名指向的版本。

那別名在哪里修改的呢?在項目中build中的webpack.base.conf.js中修改的,如圖:

用vue-cli初始化項目帶編譯器和不帶編譯器的區(qū)別有哪些

那這句話啥意思呢?

可以查看webpack的文檔http://www.css88.com/doc/webpack/configuration/resolve/大致意思就是,在項目中導(dǎo)入vue,導(dǎo)入的版本實際上是這里指向的版本,這里會覆蓋package.json中的main屬性,加上$是為了精確匹配。

以上是“用vue-cli初始化項目帶編譯器和不帶編譯器的區(qū)別有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

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

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

vue
AI