使用公共CDN服務(wù)引入Vue3.0時遇到的問題

最近嘗試使用vue-cli4創(chuàng)建項目,選擇使用vue3.0版本進(jìn)行開發(fā)。之前使用vue2時,為了優(yōu)化性能使用CDN引入了相關(guān)包,因此新的項目也打算采用相同的方式。然而vue3并沒有向2.0版本使用UMD模塊化,因此在公共庫CDN網(wǎng)站中會發(fā)現(xiàn)有多個版本可以選擇,例如vue.cjs.js,vue.esm-browser.js,vue.global.js等等。由于自己不懂它們有何區(qū)別,在用script標(biāo)簽引入時出現(xiàn)了類似Uncaught ReferenceError: vue is not defined的種種報錯。

最開始選擇引入vue.cjs.js時,瀏覽器出現(xiàn)了如下的報錯:
Uncaught ReferenceError: exports is not defined
這里的cjs是CommonJS的簡寫,說明因為某種原因瀏覽器不支持CommonJS規(guī)范,或者不能通過script標(biāo)簽引入(具體原因還不清楚)。

接著我看到了vue.esm-browser.js,引入后瀏覽器又報錯了:
Uncaught SyntaxError: Unexpected token 'export'
esm是瀏覽器使用的模塊規(guī)范。也沒明白為什么引入esm和cjs都會報錯。
注意:esm要在script標(biāo)簽中加上 type="module"

最后經(jīng)過測試,vue.global.js(包含編譯器和運行時)和vue.runtime.global.js(運行時版本)都可以使用,并且沒有報錯。

上面幾個版本中都有prod后綴的鏈接可以選擇,估計是和min類似的經(jīng)過壓縮的版本。

最奇怪的是,在最開始有出現(xiàn)過Uncaught ReferenceError: __VUE_HMR_RUNTIME__ is not defined 的報錯,到后來又莫名其妙的消失了,真的是一頭霧水。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容