webpack配置起來確實麻煩,這不,之前用剛配好了vue1+的版本,結(jié)果在(部分)安卓機上測試,發(fā)現(xiàn)存在開啟熱加載(dev-server)的情況下不能識別vue語法的問題,試了很多方法,都沒能很好的解決,最后索性將vue升級到2+,竟然就能識別了,好吧!
1.先分享一下webpack配置vue2+的一些不同(本人親測):
(1)dependencies中的vue默認(rèn)安裝2+,直接運行,會報如下錯:[Vue warn]: Failed to mount component: template or render function not defined。
如果dependencies中的vue選擇^1.0.26,那么devDependencies中對應(yīng)的vue-loader最好選擇^7.3.0,vue-hot-reload-api最好選擇^1.2.0,否則就會報錯。
(2)如果vue選擇安裝1+,dependencies中的vue-router最好選擇^0.7.13(默認(rèn)安裝2+,無法識別router.map()這個方法)。
(3)如果vue選擇安裝1+,dependencies中的vue-validator最好選擇^2.0.0(默認(rèn)安裝2.1.7)。
(4)如果vue選擇安裝1+,后面在開啟webpack dev server的時候,處于同一內(nèi)網(wǎng)中的安卓手機訪問本地設(shè)備的輸出頁面會出現(xiàn)不識別vue語法的兼容問題,ios手機可以正常訪問和解析,但是開啟別的server再來訪問并不會出現(xiàn)這種兼容問題,所以為了測試方便,建議vue選擇安裝2.0的版本。
(5)如果vue選擇安裝2+,vue2.0有兩種構(gòu)建模式,默認(rèn)情況下運行構(gòu)建,但是不能解析單文件的template模板,所以要使用獨立構(gòu)建,需要在alias中指定vue$的模塊別名地址,即
// 其他解決方案 resolve: { // require時省略的擴展名,遇到.vue結(jié)尾的也要去加載 extensions: ['','.js', '.vue'], // 模塊別名地址,方便后續(xù)直接引用別名,無須寫長長的地址,注意如果后續(xù)不能識別該別名,需要先設(shè)置root root:"../node_modules", alias:{ 'vue$':'vue/dist/vue.js' } },