vue动态路由加载时出现Cannot find module xxx问题
vue动态路由加载时报错Cannot find module xxx
vue由静态路由改为动态路由时,出现下面的错误
静态路由懒加载,当我们把在router里面,把它写死在ts里时,它加载的ok的,可是我们通过api接口拉取过来的数据时,发现是不报了上面的错
// 静态路由懒加载 export const loadView = (view: any) => { return () => import(`@/views/${view}.vue`) }
错误原因是webpack打包逻辑,webpack4中动态import不支持变量方式,查看路由返回的信息,只是返回一个方法。
而静态路由的返回,这个才是正确的组件返回方式
但是我们是要改为动态路由,则必须把它修改为
这样动态路由加载就OK了
export const loadView = (view: any) => { return (resolve: any) => require([`@/views/${view}.vue`], resolve) }
vue踩坑之旅
错误信息
Cannot find module '@/views/login/xxx' at webpackEmptyContext (eval at ./src/router sync recursive (app.js:2562), <anonymous>:2:10) at eval (asyncLoginRouter.ts?425a:20)
解决方法
①进入router中的index.js
component: () => import('@/views/login/index'),
改为
component: (resolve) => require(["@/views/login/index"], resolve),
②如果是动态路由则
export const loadView = (view) => { // 路由懒加载 return () => import(`@/views/${view}`) }
改为
export const loadView = (view) => { // 路由懒加载 return (resolve) => require([`@/views/${view}`], resolve) }
原因分析
webpack4中动态import不支持变量方式,
该修改对于生产环境无影响,只在开发环境有问题
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
手写可拖动穿梭框组件CustormTransfer vue实现示例
这篇文章主要为大家介绍了手写可拖动穿梭框组件CustormTransfer vue实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-11-11vue-router(this.$router)如何在新窗口打开路由跳转页面
这篇文章主要介绍了vue-router(this.$router)如何在新窗口打开路由跳转页面问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-12-12VUE在for循环里面根据内容值动态的加入class值的方法
这篇文章主要介绍了VUE在for循环里面根据内容值动态的加入class值的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下2018-08-08
最新评论