相信大家对于vue项目的维护与更新中会遇见很多问题,其中有两种情况最为常见。

一种是Loading chunk {n} failed,这种情况出现的原因是vue页面更新上传至服务器后,由于vue默认打包会对有改动的页面进行重新的编译和hash命名,而服务器上文件名称和浏览器缓存文件名称不一致,浏览器没有更新文件导致找不到服务器上的文件,从而报错。

另一种是Unexpected token <,这种情况出现的原因是vue的组件vue文件(不是页面文件)更新,出现和第一种情况一样的情况,其实归根到底就是浏览器的缓存文件名称和你更新过后服务器上的文件名称不一致导致的。

解决办法:由于两种情况出现的原因大致一致,我就不单独写解决方式了

1.首先利用vueRouter的onError路由执行错误监控函数,监控Loading chunk {n} failed的报错,一旦监控到报错就让浏览器重新加载网址,从而达到刷新重新加载文件的目的。代码如下:

router.onError((error) => {//路由执行过程中的错误监控
const pattern = "Loading chunk";
const isChunkLoadFailed = error.message.match(pattern);//匹配报错信息中是否包含Loading chunk
if (!isChunkLoadFailed) {
window.location.href ="网站域名" + router.history.pending.fullPath;//重新加载在接收到报错之前要去往的路由
} else {
console.log(error);
}
});

2.这已经解决了第一种Loading chunk {n} failed的情况,但是对于第二中出现的Unexpected token <用vueRouter的onError函数却是监控不到,于是采用迂回战术,给webpack输出chunk文件时加上时间戳,这样一旦更新,所有的chunk文件都会被改变,也就成功的将第二种错误引导至了第一种错误。代码如下:

a.对于vue_cli版本3以下的vue项目,直接修改webpack.config.js中的output配置即可

const times = new Date().getTime();
module.exports = {
...其他配置
output:{
filename: "js/[name].[hash]." + times + ".js",
chunkFilename: "js/[name].[hash]." + times + ".js",
}
...其他配置
}

b.对于vue_cli版本3及以上的vue项目,需要自行在项目的根目录(与package.json同级)下添加vue.config.js文件,修改其中的output配置

const times = new Date().getTime();
module.exports = {
...其他配置
configureWebpack: {
output: {
filename: "js/[name].[chunkhash]." + times + ".js",
chunkFilename: "js/[name].[chunkhash]." + times + ".js",
},
}
...其他配置
}

到了此处其实上面的两种错误就已经可以解决了。

初来乍到,如果有帮助到你还请麻烦点个关注,点个关注。如果有大佬有更好的解决办法,还请和在下分享,感激涕零,感恩戴德!

对于vue项目更新迭代导致上传至服务器后出现Loading chunk {n} failed和Unexpected token <的解决方式的更多相关文章

  1. 模板不存在:./xx 错误位置 FILE: LINE:110 (thinkphp上传至服务器后模板无法解析原因)

    thinkphp上传至服务器后模板无法解析原因 前几日做好的响应式静态页面上传至虚拟空间,打开网址地址出现: 模板不存在:./App/Admin/View/Config/customerService ...

  2. ueditor 编辑器上传到服务器后图片上传不能正常使用

    网站集成ueditor编辑器后在本地能正常使用,上传到服务器上后,图片上传功能提示:后端配置项没有正常加载,上传插件不能正常使用.且单个图片上传图标是灰色的不能点击. 相信遇到这个问题的同学是很多的吧 ...

  3. thinkphp上传至服务器后模板无法解析原因

    前几日做好的响应式静态页面上传至虚拟空间,打开网址地址出现: 模板不存在:./app/Home/View/Index/index.html 错误位置 FILE: /home/u333385714/pu ...

  4. nginx解决WordPress 上传到服务器后页面404错误的方法

    人啊,要说你傻了吧,真是啥事都能碰到: 因为换了nginx,把新做的上传到服务器配置好后,就主页和后台能打开,其他的所有页面,全是404,果真404和502是我最讨厌的数字啊,这让我很怀疑人生啊,怀疑 ...

  5. Redis在本地测试没有问题,上传的服务器后出现错误

    在服务器上,new Redis 可以拿到对象数据,但是其他操作就会报错. Redis 开启过程中,遇到错误 . :( protocol error, got 'S' as reply type byt ...

  6. 页面(html,css,js)上传到服务器后乱码

    http://blog.csdn.net/u011606714/article/details/44649159 将文件使用记事本保存成ANSI格式或者UTF格式(根据需要)即可. 设置格式: htm ...

  7. jsp项目上传到服务器

    我们通过Myeclipse完成一个Java web项目时只能通过本地访问来查看,但是我们想把它上传到服务器上使用外网访问应该怎么做呢,首先肯定是要有一台服务器 个人调试项目试手的话我建议去买阿里云的云 ...

  8. Vue打包后放到服务器出现Loading chunk {n} failed 错误

    导航栏点击切换时 会出现Loading chunk {n} failed  ,刷新之后便不会出现.而且n在最新的build的文件中,n没有存在 偶然一次发现,项目更新迭代开发时上传测试环境后就会出现, ...

  9. vue 项目上传到码云,push时error: failed to push some refs to 'https://gitee.com/mawenrou/vue_ht.git'

    vue 项目上传到码云,push时error: failed to push some refs to 'https://gitee.com/mawenrou/vue_ht.git' 因为之前已经创建 ...

随机推荐

  1. vscode插件集合整理

    针对PEPE8进行代码规范提示,安装flake8之后写代码的时候编辑器就会提示哪里出错,代码格式不规范也会提示,具体安装方式如下: 1.pip install flake8 2.安装flake8成功后 ...

  2. 微服务(七)Gateway服务网关

    1 为什么要有网关 权限控制:网关作为微服务入口,需要校验用户是是否有请求资格,如果没有则进行拦截. 路由和负载均衡:一切请求都必须先经过gateway,但网关不处理业务,而是根据某种规则,把请求转发 ...

  3. Docker 制作Nginx镜像

    参考文章:https://www.jianshu.com/p/dc4cd0547d1e 镜像的制作方式有两种,一种是下载别人的镜像之后再制作成自己的镜像,一种是从头开始制作自己的镜像 第一种,下载别人 ...

  4. no active checks on server [192.168.1.101:10051]: host [ ] not found

    1.查看/etc/zabbix/zabbix_agentd.conf的 hostanme 2.查看zabbix-web中,主机名称 3.将zabbix-web的主机名改成/etc/zabbix/zab ...

  5. 基于 OSPF 路由的邻居邻接关系发现实践

    1.实验目的 理解 OSPF 邻居关系和 OSPF 邻接关系的含义及差别 观察 OSPF 邻居邻接关系的建立过程 观察 OSPF 链路状态数据库的同步过程 2.实验原理 OSPF 网络中,路由器在发送 ...

  6. Linux基本命令学习-文件基本操作1

    关机重启 shutdown -h now #立即关机 shutdown -h 5 # 5秒后关机 #重启 shutdown -r now #立即重启 reboot halt #重启 文件相关 系统目录 ...

  7. DockerFile-构建容器的基石

    DockerFile 非常的关键,它不同于 docker commit 的手动命令方式来进行镜像的构建和修改,类似 docker commit 的交互被称为命令式交互.命令式交互是运维一直绕不开的一种 ...

  8. makefile编译子目录

    make子目录常用方法 一般是 SUB_DIR = lib_src service .PHONY: subdirs $(SUB_DIR) subdirs: $(SUB_DIR) $(SUB_DIR): ...

  9. RocketMQ源码详解 | Broker篇 · 其四:事务消息、批量消息、延迟消息

    概述 在上文中,我们讨论了消费者对于消息拉取的实现,对于 RocketMQ 这个黑盒的心脏部分,我们顺着消息的发送流程已经将其剖析了大半部分.本章我们不妨乘胜追击,接着讨论各种不同的消息的原理与实现. ...

  10. win10开机自启

    所有用户的开机自启文件夹 英文路径 # ProgramData目录是隐藏的 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp 中 ...