Vue项目中出现Loading chunk {n} failed问题的解决方法

我i的Vue项目中,用到了Vue-cli3,路由懒加载模式,在本地调试和部署上都没有任何问题,一上线跳转路由的时候会偶尔出现Loading chunk {n} failed的报错,上网查了查:

   报错来自于webpack进行code spilt之后某些bundle文件lazy loading失败。但是这个问题的根本原因没有被找到,因为这个问题出现的偶然性太高了,而且有的手机上会出现,有的不会,用模拟器不会出现,用真机又会出现,不知道是网络原因还是webpack的bug。在github、stackoverflow等各种地方也找不到原因和解决方案,这是github上关于这个问题的讨论: Loading chunk {n} failed #742

前端解决办法:

import Vue from 'vue'
import Router from 'vue-router'
  {
    path: '/',
    component: () => import('@/page/index/HomePage.vue'),
    meta: {
      title: '首页'
    }
 },
  {
    path: '*',
    redirect: '/',
    meta: {}
  }
]
Vue.use(Router)
const $router = new Router({
  // mode: 'history',
  // 解决vue框架页面跳转有白色不可追踪色块的bug
  scrollBehavior (to, from, savedPosition) {
    return { x: 0, y: 0 }
  },
  routes
})
// 解决Loading chunk (\d)+ failed问题
$router.onError((error) => {
  console.error(error)
  const pattern = /Loading chunk/g
  // const pattern = /Loading chunk (\d)+ failed/g
  const isChunkLoadFailed = error.message.match(pattern)
  const targetPath = $router.history.pending.fullPath
  if (isChunkLoadFailed && error.type === 'missing') {
    // const targetPath = $router.history.pending.fullPath
    $router.push(targetPath)
  }
})
export default $router

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值