最近嘗試使用vue-cli4創(chuàng)建項目,選擇使用vue3.0版本進行開發(fā)城须。之前使用vue2時律姨,為了優(yōu)化性能使用CDN引入了相關包,因此新的項目也打算采用相同的方式公般。然而vue3并沒有向2.0版本使用UMD模塊化万搔,因此在公共庫CDN網站中會發(fā)現有多個版本可以選擇,例如vue.cjs.js官帘,vue.esm-browser.js瞬雹,vue.global.js等等。由于自己不懂它們有何區(qū)別遏佣,在用script標簽引入時出現了類似Uncaught ReferenceError: vue is not defined
的種種報錯。
最開始選擇引入vue.cjs.js時揽浙,瀏覽器出現了如下的報錯:
Uncaught ReferenceError: exports is not defined
這里的cjs是CommonJS的簡寫状婶,說明因為某種原因瀏覽器不支持CommonJS規(guī)范,或者不能通過script標簽引入(具體原因還不清楚)意敛。
接著我看到了vue.esm-browser.js,引入后瀏覽器又報錯了:
Uncaught SyntaxError: Unexpected token 'export'
esm是瀏覽器使用的模塊規(guī)范膛虫。也沒明白為什么引入esm和cjs都會報錯草姻。
注意:esm要在script標簽中加上 type="module"
最后經過測試,vue.global.js(包含編譯器和運行時)和vue.runtime.global.js(運行時版本)都可以使用稍刀,并且沒有報錯撩独。
上面幾個版本中都有prod后綴的鏈接可以選擇,估計是和min類似的經過壓縮的版本账月。
最奇怪的是综膀,在最開始有出現過Uncaught ReferenceError: __VUE_HMR_RUNTIME__ is not defined
的報錯,到后來又莫名其妙的消失了局齿,真的是一頭霧水剧劝。