Uncaught TypeError: (intermediate value)(intermediate value).push is not a function
Loading chunk selectpc failed.
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICMyYTMvw1dvwlMvwlM3VWaWV2Zh1Wa-cmbw5CNtVzZyZDau1mNvw1M0kTM4YjMvwFdmFmck9CXt92YucWbpRWdvx2Yx5yazF2Lc9CX6MHc0RHaiojIsJye.png)
路由配置:,采用的是代码分割,异步加载。
{
path:'/selectpc',
name:'selectpc',
title:'选择省份城市',
component: () => import(/* webpackChunkName: "selectpc" */ '20190520gov/views/selectpc.vue'),
},
...
复制
之前一直没问题,后来加了一个文件上传组件,就有问题了
<div class="weui-uploader__input-box">
<!-- <input id="uploaderInput" class="weui-uploader__input" type="file" accept="image/*" multiple="" /> -->
<fileupload :fileurl.sync="apply_info.main_pic" :picwidth="1080" width_height="" class="weui-uploader__input" :onUploadFailed="uploadfailed" v-on:startupload="startupload"></fileupload>
</div>
复制
自己写的fileupload组件,也是常规写法。
搜了下原因,应该webpack构建时出现了什么包代码合并时的问题。没有引入fileupload组件时正常,引入后有问题。估计有什么冲突了,,时间不多暂时没时间看,把本路由页面异步加载去掉即可,:
import Selectpc from '20190520gov/views/selectpc.vue'
{
path:'/selectpc',
name:'selectpc',
title:'选择省份城市',
component: Selectpc, //() => import(/* webpackChunkName: "selectpc" */ '20190520gov/views/selectpc.vue'),
},
复制
具体里面可能的冲突,以后再看了。
——————————后续补充——————————
此问题貌似是一个很多人遇到的问题,没有好的根治办法,有一个柔性的容错办法,如下处理:
//兼容处理:Loading chunk {n} failed 的问题
router.onError((error) =>{
const pattern = /Loading chunk (.+?) failed/g;
const isChunkLoadFailed = error.message.match(pattern);
const targetPath = router.history.pending.fullPath;
if (isChunkLoadFailed && targetPath) {
debugger
if(typeof window!='undefined' && window.location){
//带上参数
window.location.replace(targetPath);
}
//router.replace(targetPath);
}
});
复制