【发布时间】:2018-08-12 19:28:10
【问题描述】:
我正在尝试从我的 app-routing.module.ts 延迟加载一个模块,它的唯一工作方式是我使用相对路径,例如:
{ path: 'admin', loadChildren: './admin/admin.module#AdminModule', canLoad: [AuthGuard] },
如果我执行以下操作,它会失败并显示:ERROR in could not resolve module app/admin/admin.module relative to /C/projects/my-app/src/app/app-routing.module.ts:
{ path: 'admin', loadChildren: 'app/admin/admin.module#AdminModule', canLoad: [AuthGuard] }
在后来的 Angular 版本中,这条路径必须是相对的而不是绝对的,有什么变化吗?为什么它在他们的演示中起作用: https://stackblitz.com/angular/moybyqrjdeom
在 Angular 文档中它说如下:
地址是 AdminModule 文件位置(相对于应用根目录),后跟 # 分隔符,后跟导出模块类的名称 AdminModule。
【问题讨论】:
-
我遇到了同样的问题,只能使用相对路径。
-
是的,这在 Angular 6 中发生了变化,在 Angular 5 中 app/... 为我工作,但它在 Angular 6 中停止工作。它与更新的 tsconfig 有关。
-
看起来像
ng update将"baseUrl": "./"添加到 tsconfig.json,如果您走这条路线到达 ng 6。而且,最新的 CLI 将其包含在默认为基础 tsconfig.json。所以,这就行了。
标签: angular typescript