我有一个名为myapp
的主应用。我已经配置了如下路线:
const routes: Routes = [
{ path: 'home', loadChildren: 'libs/home/home.module#HomeModule'},
{ path: 'admin', loadChildren: 'libs/admin/admin.module#AdminModule' },
{ path: '', redirectTo: '/home', pathMatch: 'full' },
{ path: '**', component: PageNotFoundComponent }
];
我的home
和admin
是具有自己路由功能的模块,位于libs
。当我运行我的应用程序时,我的模块没有加载。我想这只是一个路径问题..有人可以指导我如何从nrwl工作区的库文件夹中正确配置延迟加载模块吗?
这是我得到的错误:
ERROR Error: Uncaught (in promise): Error: Cannot find module 'libs/home/home.module'.
Error: Cannot find module 'libs/home/home.module'.
at eval (eval at ../../../../../apps/myapp/src/$$_lazy_route_resource lazy recursive (main.bundle.js:6), <anonymous>:5:9)
at ZoneDelegate.invoke (webpack-internal:///../../../../zone.js/dist/zone.js:388)
注意:我更新了我的tsconfig.app.json和tslint.json,如下所示: tslint.json
"nx-enforce-module-boundaries": [
true,
{
"lazyLoad": [
"home",
"admin"
],
"allow": []
}
]
和tsconfig.app.json:
"include": [
"**/*.ts",
/* add all lazy-loaded libraries here: "../../../libs/my-lib/index.ts" */
"../../../libs/home/index.ts",
"../../../libs/admin/index.ts"
],
感谢。
答案 0 :(得分:0)
https://nrwl.io/nx/guide-nx-workspace#create-an-angular-module-lib
ng生成lib mymodule --routing --lazy --parentModule = apps / myapp / src / myapp.module.ts
答案 1 :(得分:0)
我有一个类似的错误。我不完全理解原因,所以下面是我的假设:
对于延迟加载,您应该执行以下操作:
index.ts
文件。你应该
不导入这些文件; index.ts
中添加对这些tsconfig.app.json
文件的引用。注意-不是在根tsconfig.json
中,而是在app/tsconfig.app.json
中; RouterModule.forChild(routes)
中执行lib.module.ts
; index.ts
; 答案 2 :(得分:0)
如果在创建lib时忘记添加参数--parentModule,则可以通过将lib添加到 apps / yourapp / tsconfig.app.json文件进入您的应用目录,并将您的模块添加到
"include": ["**/*.ts", "../../libs/auth/src/index.ts", "../../libs/your-libname/src/index.ts"]
和在app.module.ts
中
{
path: 'mypath',
loadChildren: '@workspace/your-libname#YourLibnameModule'
}
答案 3 :(得分:0)
使用Angular v8加载您的延迟加载库的方式如下:
{ path: 'home', loadChildren: () => import('@yourprefix/home').then(m => m.HomeModule) },