vue 懒加载组件chunk相对路径混乱问题及解决
2022-04-01 17:45:59 来源:易采站长站 作者:
目录
懒加载组件chunk相对路径混乱问题问题描述具体如下解决方法懒加载组件 路径不对懒加载组件chunk相对路径混乱问题
问题描述
在vue项目中用vue-router做路由,做代码分割和懒加载时,由于webpack配置不当,导致懒加载chunk时相对路径出现混乱导致加载chunk失败
具体如下
//router.js import VueRouter from 'vue-router' const A = () => import('./pages/a.vue'); const B = () => import('./pages/b.vue'); const AA = () => import('./pages/a.a.vue'); const AB = () => import('./pages/a.b.vue'); const routes = [ { path: '/a', component: A,children:[{ path:'a', component:AA },{ path:'b', component:AB }] }, { path: '/b/:id', component: B, props: true }] const router = new VueRouter({ mode: 'history', routes }) export default router;
如上路由配置,编译之后对应的chunk为:
A —- 0.hash.jsB —- 1.hash.jsAA —- 2.hash.jsAB —- 3.chunk.js当 url 为 /a 或 /b时正常,且两者可以自由切换;当从 /a 切换为 /a/a 或 /a/b时也正常;当从/a/a 切换为 /a/b时报错vue-router.esm.js:1793 Error: Loading chunk 3 failed.
查看加载的路径时 /a/3.hash.js 找不到;
解决方法
很可能是静态资源路径根未指定,相对路径相对于当前url目录导致,修改:
//webpack.config.js config.output.publicPath = '/';
懒加载组件 路径不对
最近在使用VueRouter的懒加载组件的时候.
const routes = [ { path: '/', component: App }, { path: '/category', component: resolve => {require(['./components/Category.vue'], resolve)} } ]
但是在加载/category的时候,我发现会报错。
原来webpack会把这个懒加载单独加载一个js,默认按照
0.app.js 1.app.js ……的顺序加载的
通过简单的debug发现是0.app.js的路径不对
通过webpack的设置即可解决(我使用的laravel,配置根据情况自行修改)
Elixir.webpack.mergeConfig({ module: { loaders: [ { test: /\.css/, loader: "style!css" } ] }, output: { publicPath: "js/" } })
配置下output下的publicPath即可。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持易采站长站。
如有侵权,请联系QQ:279390809 电话:15144810328
最新图文推荐
相关文章
-
显卡1060和1050ti怎么选 显卡1060和1050ti区别对比
显卡是电脑的重要组成部分之一,因此显卡的选择是非常重要的。有些朋友喜欢装gtx1060,而有些朋友就会喜欢装gtx1050ti。这两个显卡有什么区别呢?下面小编就给大家讲讲显卡1060和1050ti的区别有哪些。 显卡1060和1050ti区别对比: 为了比较直观的了解gtx1060与gtx1050ti显卡的区别,以图片的形式罗列出两者的参数。 1、GTX1060的性能比GTX1050T2021-03-24
-
华为MateView GT值得入手吗 华为MateView GT详细评测
5月19日华为召开新品发布会,正式进军显示器领域,并带来华为MateView和华为MateView GT两款产品,一款直面,一款曲面。华为此时进入显示器领域和当前消费者对于显示要求以及多屏办公娱乐的需求分不开,尤其是在越来也注重效率的当下,显示器早已不再是台式机的专属,很多笔记本用户也会在本身屏幕之外选择一款显示器作为第二块屏幕,从而实现更高效的办公、学习和娱乐。华为MateView GT详细评测2021-05-20