vue-cli 打包后提交到线上出现 "Uncaught SyntaxError:Unexpected token" 报错


Posted in Javascript onNovember 06, 2018

前言: 项目使用vue-cli版本2.9.3 ,vue-router使用webpackChunkName实现按需加载.

vue-cli 打包后提交到线上出现 "Uncaught SyntaxError:Unexpected token" 报错

BUG描述:该报错在项目上线一段时间后,有用户反映页面无法正常游览 (后面以问题1/问题2区分)

问题1.导航点击无法正常跳转,console打印:Error:Loading chunk {n} failed.

报错截图vue-cli 打包后提交到线上出现 "Uncaught SyntaxError:Unexpected token" 报错

问题2.页面全白,console打印:Uncaught SyntaxError:Unexpected token <

报错截图: vue-cli 打包后提交到线上出现 &quot;Uncaught SyntaxError:Unexpected token&quot; 报错

经过一番折腾,初步定位问题1在经过build/webpack.prod.conf.jschunkhash打包后的JS文件hash值会有变更,因为每次更新代码到线上都会删除旧的dist目录,将最新的dist目录copy上传提供后台更新. 在更新代码的这个过程用户停留在页面上,当用户在更新完后重新操作就会导致报错

vue-cli 打包后提交到线上出现 &quot;Uncaught SyntaxError:Unexpected token&quot; 报错

问题1解决方法:捕获路由报错. (思路来源:https://3water.com/article/147427.htm)

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) {//路由跳转报错,href手动跳转
   sessionStorage.setItem('chunkError', 'reload');
   const targetPath = routers.history.pending.fullPath;
   window.location.href = window.location.origin + targetPath;
  }else if(chunkBool === 'reload'){ //手动跳转后依然报错,强制刷新
   sessionStorage.setItem('chunkError', Date.now());
   window.location.reload(true);
  }
 }
})

问题2在Network查看js文件加载的时候发现某个js文件Response Headercontent-type异常,正常情况返回content-type: application/javascript. 但是有一个js响应的内容为HTML, js无法识别<符号导致抛出报错

vue-cli 打包后提交到线上出现 &quot;Uncaught SyntaxError:Unexpected token&quot; 报错

vue-cli 打包后提交到线上出现 &quot;Uncaught SyntaxError:Unexpected token&quot; 报错

问题2目前还在与后台商量如何解决,解决后会更新解决方法分享.有同学遇到同样的问题可以一起讨论或提出更好的解决方案参考学习.★★★

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
理解Javascript_06_理解对象的创建过程
Oct 15 Javascript
有关javascript的性能优化 (repaint和reflow)
Apr 12 Javascript
JavaScript实现计算字符串中出现次数最多的字符和出现的次数
Mar 12 Javascript
理解JavaScript中worker事件api
Dec 25 Javascript
理解Javascript图片预加载
Feb 23 Javascript
D3.js实现直方图的方法详解
Sep 25 Javascript
jQuery响应滚动条事件功能示例
Oct 14 jQuery
element ui 对话框el-dialog关闭事件详解
Feb 26 Javascript
Vue中在新窗口打开页面及Vue-router的使用
Jun 13 Javascript
bootstrap 路径导航 分页 进度条的实例代码
Aug 06 Javascript
jQuery实现高级检索功能
May 28 jQuery
微信小程序点击保存图片到本机功能
Dec 13 Javascript
100行代码实现一个vue分页组功能
Nov 06 #Javascript
微信小程序自定义tabBar组件开发详解
Sep 24 #Javascript
Vue递归实现树形菜单方法实例
Nov 06 #Javascript
electron中使用bootstrap的示例代码
Nov 06 #Javascript
vue实现自定义日期组件功能的实例代码
Nov 06 #Javascript
浅谈Vue数据响应思路之数组
Nov 06 #Javascript
Vue项目中最新用到的一些实用小技巧
Nov 06 #Javascript
You might like
深入理解PHP之数组(遍历顺序)  Laruence原创
2012/06/13 PHP
3款值得推荐的微信开发开源框架
2014/10/28 PHP
在PHP站点的页面上添加Facebook评论插件的实例教程
2016/01/08 PHP
jquery不支持toggle()高(新)版本的问题解决
2016/09/24 PHP
PHP实现的分解质因数操作示例
2018/08/01 PHP
PHP实现二维数组按照指定的字段进行排序算法示例
2019/04/23 PHP
PHP设计模式(一)工厂模式Factory实例详解【创建型】
2020/05/02 PHP
JS正则表达式大全(整理详细且实用)
2013/11/14 Javascript
jquery easyui中treegrid用法的简单实例
2014/02/18 Javascript
JavaScript对象的property属性详解
2014/04/01 Javascript
div失去焦点事件实现思路
2014/04/22 Javascript
js正则表达式验证邮件地址
2015/11/12 Javascript
Javascript实现图片加载从模糊到清晰显示的方法
2016/06/21 Javascript
JavaScript浏览器对象模型BOM(BrowserObjectModel)实例详解
2016/11/29 Javascript
基于jstree使用AJAX请求获取数据形成树
2017/08/29 Javascript
微信小程序 按钮滑动的实现方法
2017/09/27 Javascript
浅谈Vue数据响应思路之数组
2018/11/06 Javascript
JavaScript 常见的继承方式汇总
2020/09/17 Javascript
[39:11]DOTA2上海特级锦标赛C组资格赛#2 LGD VS Newbee第二局
2016/02/28 DOTA
python 性能提升的几种方法
2016/07/15 Python
Python实现将sqlite数据库导出转成Excel(xls)表的方法
2017/07/17 Python
详解TensorFlow查看ckpt中变量的几种方法
2018/06/19 Python
pandas 透视表中文字段排序方法
2018/11/16 Python
Python爬虫实现获取动态gif格式搞笑图片的方法示例
2018/12/24 Python
python按修改时间顺序排列文件的实例代码
2019/07/25 Python
基于Python 的语音重采样函数解析
2020/07/06 Python
用Python 爬取猫眼电影数据分析《无名之辈》
2020/07/24 Python
CSS3 3D酷炫立方体变换动画的实现
2019/03/26 HTML / CSS
Jo Malone美国官网:祖玛珑香水
2017/03/27 全球购物
中间件分为哪几类
2012/03/14 面试题
冬季施工防火方案
2014/05/17 职场文书
2014领导班子“四风问题”对照检查材料思想汇报(执法局)
2014/09/21 职场文书
抗洪救灾感谢信
2015/01/22 职场文书
如何书写你的职业生涯规划书?
2019/06/27 职场文书
Python Django ORM连表正反操作技巧
2021/06/13 Python
处理canvas绘制图片模糊问题
2022/05/11 Javascript