Vue动态路由异步导入组件时,为何无法加载模块?

更新于
2026-09-23 21:26:38
0阅读来源:SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计423个文字,预计阅读时间需要2分钟。

Vue动态路由异步导入组件时,为何无法加载模块?

错误信息提示:webpackEmptyContext(eval at ./src/store/modules sync recursive (0.js:10), anonymous:2:10)路径信息由后端给出,前端需要动态加载路径,同时component的路径也是后端给出的。

报错信息应该是这样的

webpackEmptyContext (eval at ./src/store/modules sync recursive (0.js:10), <anonymous>:2:10)

路由信息由后端给出,那么前端需要动态加载路由,同时component的路径也是后端给出,但是动态加载该路径会报错

如:

// 假如path = '@/views/user'
const com = () => import(path) // 这样会报错哦
const com2 = () = > import('@/views/user') // 这样写死的字符串就可以

原因应该是在webpack,webpack 编译es6 动态引入 import() 时不能传入变量,因为webpack的现在的实现方式不能实现完全动态。

解决办法:

可以通过字符串模板来提供部分信息给webpack,例如import(`@/${path}`), 这样编译时会编译所有@/views下的模块,但运行时确定path的值才会加载,从而实现懒加载。

阅读全文

本文共计423个文字,预计阅读时间需要2分钟。

Vue动态路由异步导入组件时,为何无法加载模块?

错误信息提示:webpackEmptyContext(eval at ./src/store/modules sync recursive (0.js:10), anonymous:2:10)路径信息由后端给出,前端需要动态加载路径,同时component的路径也是后端给出的。

报错信息应该是这样的

webpackEmptyContext (eval at ./src/store/modules sync recursive (0.js:10), <anonymous>:2:10)

路由信息由后端给出,那么前端需要动态加载路由,同时component的路径也是后端给出,但是动态加载该路径会报错

如:

// 假如path = '@/views/user'
const com = () => import(path) // 这样会报错哦
const com2 = () = > import('@/views/user') // 这样写死的字符串就可以

原因应该是在webpack,webpack 编译es6 动态引入 import() 时不能传入变量,因为webpack的现在的实现方式不能实现完全动态。

解决办法:

可以通过字符串模板来提供部分信息给webpack,例如import(`@/${path}`), 这样编译时会编译所有@/views下的模块,但运行时确定path的值才会加载,从而实现懒加载。

阅读全文