Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

问题描述

使用动态路由无法加载模块
报错信息如下:

vue-router.esm.js:2117 Error: Cannot find module '@/components/main/main.vue'
    at webpackEmptyContext (libs sync:2)
    at lazyLoading.js:2

但是在 routers.js 中引用的
首页和登录页面都是可以正常打开的

image.png

用户登录后从数据中加载的路由地址通过动态加载无法打开

调用方式如下

menu.component = lazyLoading(menu.component)

lazyLoading.js 代码如下

// export default (url) => () => import(`@/${url}`)
// 这种不可以
export default (url) => () => import(`@/` + url)
// 这个可以
// export default (url) => () => import(`@/components/main`)

npm run dev 会出现以上描述情况
不修改任何代码的情况下
但是 npm run build 则所以模块正常打开


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
501 views
Welcome To Ask or Share your Answers For Others

1 Answer

是webpack版本引起的问题,点击这个查看
或者直接吧
import() 替换成如下:

Promise.resolve().then(()=>require(`@/views/${str}`))

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...