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 相关文章推荐
详解js闭包
Sep 02 Javascript
JS合并数组的几种方法及优劣比较
Sep 19 Javascript
js动态切换图片的方法
Jan 20 Javascript
jQuery使用before()和after()在元素前后添加内容的方法
Mar 26 Javascript
Validform验证时可以为空否则按照指定格式验证
Oct 20 Javascript
Vue用v-for给循环标签自身属性添加属性值的方法
Oct 18 Javascript
JS利用prototype给类添加方法操作详解
Jun 21 Javascript
layui 实现表单和文件上传一起传到后台的例子
Sep 16 Javascript
Vue可自定义tab组件用法实例
Oct 24 Javascript
vue.js实现简单购物车功能
May 30 Javascript
vue 需求 data中的数据之间的调用操作
Aug 05 Javascript
vue-quill-editor插入图片路径太长问题解决方法
Jan 08 Vue.js
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中利用XML技术构造远程服务(下)
2006/10/09 PHP
PHP开发需要注意的安全问题
2010/09/01 PHP
PHP数组操作汇总 php数组的使用技巧
2011/07/17 PHP
php实现简单洗牌算法
2013/06/18 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
2016/05/17 PHP
PHP面向对象程序设计组合模式与装饰模式详解
2016/12/02 PHP
利用PHP抓取百度阅读的方法示例
2016/12/18 PHP
php 根据自增id创建唯一编号类
2017/04/06 PHP
Laravel自动生成UUID,从建表到使用详解
2019/10/24 PHP
laravel框架中表单请求类型和CSRF防护实例分析
2019/11/23 PHP
javascript hasFocus使用实例
2010/06/29 Javascript
Jquery显示和隐藏元素或设为只读(含Ligerui的控件禁用,实例说明介绍)
2013/07/09 Javascript
jQuery.event兼容各浏览器的event详细解析
2013/12/18 Javascript
jQuery 无限级菜单的简单实例
2014/02/21 Javascript
Nodejs+express+html5 实现拖拽上传
2014/08/08 NodeJs
JavaScript中使用arguments获得函数传参个数实例
2014/08/27 Javascript
JavaScript实现查找字符串中第一个不重复的字符
2014/12/29 Javascript
JS+CSS实现的简单折叠展开多级菜单效果
2015/09/12 Javascript
javascript函数中的3个高级技巧
2016/09/22 Javascript
JavaScript之Vue.js【入门基础】
2016/12/06 Javascript
原生js实现无缝轮播图效果
2017/01/11 Javascript
JQuery 选择器、DOM节点操作练习实例
2017/09/28 jQuery
Angular2监听页面大小变化的解决方法
2017/10/09 Javascript
C#实现将一个字符转换为整数
2017/12/12 Javascript
快速处理vue渲染前的显示问题
2018/03/05 Javascript
Python使用Pycrypto库进行RSA加密的方法详解
2016/06/06 Python
利用python批量修改word文件名的方法示例
2017/10/17 Python
python交互式图形编程实例(三)
2017/11/17 Python
对Python 两大环境管理神器 pyenv 和 virtualenv详解
2018/12/31 Python
Python实现基于SVM的分类器的方法
2019/07/19 Python
Python的控制结构之For、While、If循环问题
2020/06/30 Python
CSS3的Flexbox布局的简明入门指南
2016/04/08 HTML / CSS
英国受欢迎的运动鞋和街头服装商店:Footasylum
2018/06/12 全球购物
会计求职自荐信
2015/03/26 职场文书
三八节活动简报
2015/07/20 职场文书
浅谈如何提高PHP代码质量之单元测试
2021/05/28 PHP