You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 6懒加载失效:访问dashboard路由提示找不到模块

解决Angular 6.0.0懒加载路由"Cannot find module"报错问题

嘿,我刚处理过一模一样的问题!这个报错的核心原因是Angular 6.0.0对懒加载路由的语法做了强制更新,你之前用的那种字符串路径写法(loadChildren: 'app/login/login.module#LoginModule')在Angular 6里已经不被默认支持了,给你两个可行的解决方案:

方案一:用Angular官方推荐的新语法(首选)

这是符合ES标准的动态import写法,不仅适配Angular 6+的版本,还能优化打包体积。直接把你的路由配置改成这样:

const routes: Routes = [
  { 
    path: 'login', 
    // 用相对路径指向模块,从当前路由文件的位置出发
    loadChildren: () => import('./login/login.module').then(m => m.LoginModule) 
  },
  { 
    path: '', 
    component: MasterComponent, 
    children: [
      { 
        path: 'dashboard', 
        loadChildren: () => import('./dashboard/dashboard.module').then(m => m.DashboardModule) 
      }
    ]
  }
];

这里要注意必须用相对路径,你之前写的app/xxx这种绝对路径在新语法下会导致模块找不到,这也是常见的踩坑点。

方案二:兼容旧写法(不推荐,仅临时过渡用)

如果你暂时不想改代码,可以调整配置来让旧写法生效,但不建议长期使用:

  1. 打开项目根目录的tsconfig.json,在compilerOptions里添加"module": "esnext",同时确保"moduleResolution": "node"
  2. 打开angular.json,找到build配置项,把aot设为false
    不过要注意,关闭AOT会影响生产环境的性能和打包体积,所以还是尽量用方案一。

最后再检查两个细节:

  • 确认DashboardModule确实在app/dashboard/dashboard.module.ts里,而且类名拼写完全正确(大小写不能错!)
  • 确认DashboardModule里已经正确配置了RouterModule.forChild(),添加了对应的子路由

内容的提问来源于stack exchange,提问作者Chanuka Asanka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:32:43