成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

vue-cli 打包后提交到線上出現(xiàn) "Uncaught SyntaxError:Unex

Allen / 2761人閱讀

摘要:前言項(xiàng)目使用版本使用實(shí)現(xiàn)按需加載描述該報(bào)錯(cuò)在項(xiàng)目上線一段時(shí)間后有用戶反映頁(yè)面無(wú)法正常游覽后面以問(wèn)題問(wèn)題區(qū)分問(wèn)題導(dǎo)航點(diǎn)擊無(wú)法正常跳轉(zhuǎn)刷新后恢復(fù)正常打印報(bào)錯(cuò)截圖問(wèn)題頁(yè)面全白并且刷新仍然無(wú)效打印報(bào)錯(cuò)截圖經(jīng)過(guò)一番折騰初步定位問(wèn)題在經(jīng)過(guò)的打包后的

前言: 項(xiàng)目使用vue-cli版本2.9.3 ,vue-router使用webpackChunkName實(shí)現(xiàn)按需加載.

BUG描述:該報(bào)錯(cuò)在項(xiàng)目上線一段時(shí)間后,有用戶反映頁(yè)面無(wú)法正常游覽 (后面以問(wèn)題1/問(wèn)題2區(qū)分)

問(wèn)題1.導(dǎo)航點(diǎn)擊無(wú)法正常跳轉(zhuǎn),刷新后恢復(fù)正常. console打印:Error:Loading chunk {n} failed.

報(bào)錯(cuò)截圖

問(wèn)題2.頁(yè)面全白,并且刷新仍然無(wú)效. console打印:Uncaught SyntaxError:Unexpected token <

報(bào)錯(cuò)截圖: 

經(jīng)過(guò)一番折騰,初步定位問(wèn)題1在經(jīng)過(guò)build/webpack.prod.conf.jschunkhash打包后的JS文件hash值會(huì)有變更,因?yàn)槊看胃麓a到線上都會(huì)刪除舊的dist目錄,將最新的dist目錄copy上傳提供后臺(tái)更新. 在更新代碼的這個(gè)過(guò)程用戶停留在頁(yè)面上,當(dāng)用戶在更新完后重新操作就會(huì)導(dǎo)致報(bào)錯(cuò)

問(wèn)題1解決方法:捕獲路由報(bào)錯(cuò). (思路來(lái)源:https://segmentfault.com/a/11... )

routers.onError((err) => {
  const pattern = /Loading chunk (d)+ failed/g;
  const isChunkLoadFailed = err.message.match(pattern);
  if (isChunkLoadFailed) {
    let chunkBool = sessionStorage.getItem("chunkError");
    let nowTimes = Date.now();
    if (chunkBool === null || chunkBool && nowTimes - parseInt(chunkBool) > 60000) {//路由跳轉(zhuǎn)報(bào)錯(cuò),href手動(dòng)跳轉(zhuǎn)
      sessionStorage.setItem("chunkError", "reload");
      const targetPath = routers.history.pending.fullPath;
      window.location.href = window.location.origin + targetPath;
    }else if(chunkBool === "reload"){ //手動(dòng)跳轉(zhuǎn)后依然報(bào)錯(cuò),強(qiáng)制刷新
      sessionStorage.setItem("chunkError", Date.now());
      window.location.reload(true);
    }
  }
})

問(wèn)題2在Network查看js文件加載的時(shí)候發(fā)現(xiàn)某個(gè)js文件Response Headercontent-type異常,正常情況返回content-type: application/javascript. 但是有一個(gè)js響應(yīng)的內(nèi)容為HTML, js無(wú)法識(shí)別<符號(hào)導(dǎo)致拋出報(bào)錯(cuò)

問(wèn)題2解決方法: 經(jīng)過(guò)問(wèn)題排查發(fā)現(xiàn),vue-cli默認(rèn)build后的文件名格式為js/[name].[chunkhash].js,每次npm run build后有改動(dòng)的文件hash值都會(huì)改變,上傳后Nginx無(wú)法找到最新上傳的文件,所以返回了默認(rèn)index.html里的內(nèi)容,我們的文件后綴名是.js自然無(wú)法識(shí)別這種標(biāo)簽符號(hào),導(dǎo)致console拋出Uncaught SyntaxError:Unexpected token <,我嘗試修改build/webpack.prod.conf.jsoutput輸出文件名格式,目前問(wèn)題已得到解決

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/99034.html

相關(guān)文章

  • Vue-項(xiàng)目從本地搭建線上部署(wǒ shì biaō tí dǎng)

    摘要:放置在目錄下或通過(guò)絕對(duì)路徑被引用。對(duì)于相關(guān)來(lái)說(shuō),我們推薦使用而不是直接鏈?zhǔn)街付?。在不更改配置文件的情況下,前端頁(yè)面迭代發(fā)布,不需要重啟服務(wù)。 作者:gauseen 0. 關(guān)于 Vuejs 簡(jiǎn)介:Vue (讀音 /vju?/,類(lèi)似于 view) 是一套用于構(gòu)建用戶界面的漸進(jìn)式框架,易用、靈活、高效。 生態(tài)系統(tǒng) 項(xiàng)目 介紹 awesome-vue Vue.js 相關(guān)很棒的...

    Arno 評(píng)論0 收藏0
  • 網(wǎng)站子目錄部署VUE webpack 打包資源文件路徑的正確引用方式

    摘要:是目前使用最為火熱的打包工具,各大知名的框架類(lèi)庫(kù)都用其打包,國(guó)內(nèi)使用最近也火熱起來(lái)。但是坑也很多,比如說(shuō)圖片,字體等文件的路徑。 webpack 是目前使用最為火熱的打包工具,各大知名的框架類(lèi)庫(kù)都用其打包,國(guó)內(nèi)使用最近也火熱起來(lái)。它在單頁(yè)應(yīng)用和類(lèi)庫(kù)打包上幫助許多人從代碼管理中解脫了出來(lái),成為了當(dāng)下風(fēng)靡一時(shí)的打包工具。 但是坑也很多,比如說(shuō)圖片,字體等文件的路徑。 剛開(kāi)始用webpack...

    zgbgx 評(píng)論0 收藏0
  • vue先hash 模式部署項(xiàng)目,然開(kāi)啟histroy模式 ,引發(fā)的幾個(gè)問(wèn)題以及histroy模式的

    摘要:先模式,后模式就像開(kāi)頭說(shuō)的,這里的問(wèn)題指的是先用模式部署項(xiàng)目到線上,然后再開(kāi)啟模式,由此引發(fā)的一些問(wèn)題。后話以上就是本文的所有內(nèi)容,建議項(xiàng)目一開(kāi)始還是直接跟后端說(shuō)一下,開(kāi)啟模式,省得后面的種種坑。 前言: vue路由有一個(gè)HTML5 History 模式,這個(gè)模式要在路由里面另外開(kāi)啟的,很多人在剛使用路由的時(shí)候之前不知道這個(gè)模式,所以并沒(méi)有啟用,然后就把項(xiàng)目部署上去了,因?yàn)檫@個(gè)模式還是...

    Imfan 評(píng)論0 收藏0
  • 前端開(kāi)發(fā)之走進(jìn)Vue.js

    摘要:作為目前最熱門(mén)最具前景的前端框架之一,其提供了一種幫助我們快速構(gòu)建并開(kāi)發(fā)前端項(xiàng)目的新的思維模式。的新版本,的簡(jiǎn)稱(chēng)。的包管理工具,用于同一管理我們前端項(xiàng)目中需要用到的包插件工具命令等,便于開(kāi)發(fā)和維護(hù)。 Vue.js作為目前最熱門(mén)最具前景的前端框架之一,其提供了一種幫助我們快速構(gòu)建并開(kāi)發(fā)前端項(xiàng)目的新的思維模式。本文旨在幫助大家認(rèn)識(shí)Vue.js,了解Vue.js的開(kāi)發(fā)流程,并進(jìn)一步理解如何通...

    zxhaaa 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<