Angular 7懒加载报错:无法找到模块'./admin/admin.module'
Angular 7 懒加载模块找不到:Cannot find module './admin/admin.module' 解决方案
先来看你遇到的错误日志:
ERROR Error: Uncaught (in promise): Error: Cannot find module './admin/admin.module' Error: Cannot find module './admin/admin.module' at $_lazy_route_resource lazy namespace object:5 at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:388) at Object.onInvoke (core.js:14191) at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:387) at Zone.push../node_modules/zone.js/dist/zone.js.Zone.run (zone.js:138) at zone.js:872 at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421) at Object.onInvokeTask (core.js:14182) at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:420) at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:188) at resolvePromise (zone.js:814) at resolvePromise (zone.js:771) at zone.js:873
从你给出的配置代码来看,已经做了基础的懒加载路由配置,但还是找不到模块,我给你梳理几个可能的排查方向和解决方案:
1. 检查文件路径与大小写
Angular在模块解析时对路径大小写是敏感的(尤其是在Linux/macOS环境下),确认:
admin.module.ts文件确实位于项目根目录下的./admin/文件夹中- 路由配置里的路径
./admin/admin.module#AdminModule与实际文件路径完全一致,没有大小写错误(比如写成了Admin/admin.module)
2. 确认AdminModule正确导出
虽然你的admin.module.ts里已经导出了AdminModule,但可以再检查一遍:
- 确保
export class AdminModule { }这一行没有拼写错误 - 没有在模块上添加额外的装饰器导致导出失效
3. 检查tsconfig.json的路径配置
Angular 7依赖TypeScript的路径解析,确认你的tsconfig.json里的compilerOptions包含正确的配置:
{ "compilerOptions": { "baseUrl": "./", "module": "esnext", "moduleResolution": "node", // 其他配置... } }
baseUrl设置为./可以确保相对路径解析正常,moduleResolution设为node符合Node.js的模块解析规则。
4. 尝试使用绝对路径(带src前缀)
有时候相对路径会因为项目结构的问题解析失败,你可以试试把懒加载路径改成绝对路径:
// app-routing.module.ts { path: 'admin', loadChildren: 'src/app/admin/admin.module#AdminModule', canActivate: [RestrictedGuardService], data: { perfil: ["ROLE_ADMIN"] } },
5. 清理缓存并重启开发服务器
Angular CLI的缓存可能会导致模块解析异常,执行以下命令清理缓存后重启服务器:
ng clean ng serve --aot
添加--aot参数可以提前编译,更容易发现模块导入的问题。
6. 检查AdminRoutingModule中的组件导入
看你的admin.routing.module.ts里导入了AdminUsuariosComponent,确认这个组件已经在AdminModule的declarations数组中声明,并且没有导入路径错误——如果路由里的组件找不到,也可能间接导致整个模块加载失败。
7. 确认AppModule中没有提前导入AdminModule
懒加载的核心是模块不能被主模块提前导入,检查你的app.module.ts,确保没有在imports数组中引入AdminModule或者AdminRoutingModule,否则懒加载会失效,甚至导致模块找不到的错误。
内容的提问来源于stack exchange,提问作者emarzo
相关产品推荐
相关产品推荐

