线上项目路由跳转报错 Loading chunk failed

场景:

线上PC端项目点击左侧路由菜单栏进行页面跳转时点击无反应并报错 Loading chunk  failed

原因:

经查阅资料找出原因:项目使用了路由懒加载!!!

       路由懒加载的情况下,访问当前应用进行路由跳转时都是实时动态的从服务器上拉取相应模块的js文件,这时候我们改完代码打包上线,js文件名更换了,路由跳转的时候由于页面并未刷新,所以还是访问的原来的文件名,这是就会出现找不到模块的错误。 路由异步加载组件报错,这个错误来源 webpack 进行 code spilt 之后某些 bundle 文件 lazy loading 失败。

解决办法:

方法1:不使用路由懒加载,但大型项目路由过多,不方便修改;

方法2:使用 router.onError() 方法

该方法官方文档有给出解释:当在渲染一个路由的过程中,需要尝试解析一个异步组件时发生错误。 完全符合我们场景。

在min.js中添加如下代码:

import router from "./router";
/* 路由异常错误处理,尝试解析一个异步组件时发生错误,重新渲染目标页面 */
router.onError((error) => {
  const pattern = /Loading chunk (\d)+ failed/g;
  const isChunkLoadFailed = error.message.match(pattern);
  const targetPath = router.history.pending.fullPath;
  console.log(targetPath)
  if (isChunkLoadFailed) {
    router.replace(targetPath);
  }
});

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阁下何不同风起?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值