vue動態(tài)路由加載時出現(xiàn)Cannot?find?module?xxx問題
vue動態(tài)路由加載時報錯Cannot find module xxx
vue由靜態(tài)路由改為動態(tài)路由時,出現(xiàn)下面的錯誤

靜態(tài)路由懶加載,當(dāng)我們把在router里面,把它寫死在ts里時,它加載的ok的,可是我們通過api接口拉取過來的數(shù)據(jù)時,發(fā)現(xiàn)是不報了上面的錯
// 靜態(tài)路由懶加載
export const loadView = (view: any) => {
return () => import(`@/views/${view}.vue`)
}
錯誤原因是webpack打包邏輯,webpack4中動態(tài)import不支持變量方式,查看路由返回的信息,只是返回一個方法。

而靜態(tài)路由的返回,這個才是正確的組件返回方式

但是我們是要改為動態(tài)路由,則必須把它修改為

這樣動態(tài)路由加載就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)
解決方法
①進(jìn)入router中的index.js
component: () => import('@/views/login/index'),改為
component: (resolve) => require(["@/views/login/index"], resolve),
②如果是動態(tài)路由則
export const loadView = (view) => { // 路由懶加載
return () => import(`@/views/${view}`)
}改為
export const loadView = (view) => { // 路由懶加載
return (resolve) => require([`@/views/${view}`], resolve)
}原因分析
webpack4中動態(tài)import不支持變量方式,
該修改對于生產(chǎn)環(huán)境無影響,只在開發(fā)環(huán)境有問題
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue打包后dist目錄下的index.html網(wǎng)頁顯示空白的問題(兩種方案)
本文主要介紹了vue打包后dist目錄下的index.html網(wǎng)頁顯示空白的問題,主要介紹了兩種方式,具有一定的參考價值,感興趣的可以了解一下2023-11-11
vue項目fetch本地PAG格式文件404 NotFound的解決
這篇文章主要介紹了vue項目fetch本地PAG格式文件404 NotFound的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10
vue?url跳轉(zhuǎn)解析和參數(shù)編碼介紹
這篇文章主要介紹了vue?url跳轉(zhuǎn)解析和參數(shù)編碼,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03
vue中v-for循環(huán)選中點(diǎn)擊的元素并對該元素添加樣式操作
這篇文章主要介紹了vue中v-for循環(huán)選中點(diǎn)擊的元素并對該元素添加樣式操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07

