рдпрджрд┐ рдЖрдк рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдиреЗ рдХреЛрдгреАрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ, рддреЛ рд╡рд╣ рдиреЛрдб_рдореЙрдбреНрдпреВрд▓реНрд╕ рд╕реЗ рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдлрд╝реАрдЪрд░ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЪрд▓реЛ рдЧрд╣рд░рд╛ рдЧреЛрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЕрдВрдзреЗрд░реЗ рдкрд╛рдиреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рддреЗ рд╣реИрдВред

рдпрджрд┐ рдЖрдк рдкреНрд░рд╢реНрди рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ "рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреИрд╕реЗ рдмрдирд╛рдПрдВ?" - рдХреЛрдгреАрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рджреЛ рдЙрдкрдХрд░рдг рд╣реИрдВ:
- рдХреЛрдгреАрдп рд╕реАрдПрд▓рдЖрдИ (рд╣реБрдб рдХреЗ рддрд╣рдд рдПрдирдЬреА-рдкреИрдХрд╛рдЧреНрд░рд╛) ;
- рд╕реАрдзреЗ рдПрдирдЬреА-рдкреИрдХрд╛рдЧреНрд░рд╛ ;
рдЖрдк рдКрдкрд░ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ, рдЕрдиреНрдп рд╕рднреА рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред
рдЖрд▓рд╕реА рдореЙрдбреНрдпреВрд▓ (рдлрд╝реАрдЪрд░ рдореЙрдбреНрдпреВрд▓)

рддреЛ, рдпрджрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреЛрдгреАрдп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ рддреЛ рдЖрдкрдХреЛ рдХреЛрдгреАрдп рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЖрдкрдХреЛ рдХрд┐рди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЖрдорддреМрд░ рдкрд░ рдШрдЯрдХреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд░рдЦрдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреА рд╕реЗрд╡рд╛рдПрдВ рдЬреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрддреНрдордирд┐рд░реНрднрд░ рдЯреБрдХрдбрд╝реЗ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреА рд╣реИрдВред рдЕрдХреНрд╕рд░ рдбреЗрд╡рд▓рдкрд░ рдПрдХ рдРрд╕реА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдРрдк рдкрд░ рд▓реЛрдб рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдкреГрд╖реНрда рдкрд░ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛ред
рдФрд░ рдЕрдм рдлреАрдЪрд░ рд╕реНрдЯреЛрд░ (рдЕрднреА рдХреЗ рд▓рд┐рдП рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ) рдФрд░ рдлрд╝реАрдЪрд░ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рд╕рдордпред
рдпрджрд┐ рдЖрдк рдХреБрдЫ рдореВрд▓ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЖрд▓рд╕реА рд▓реЛрдб рдХрд┐рдП рдЧрдП рдореЙрдбреНрдпреВрд▓ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╡реЗ рдЖрд▓рд╕реА рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдРрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рд╕рдВрдХрд▓рди рдХреЗ рд╕рдордп рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡реЗрдмрдкреИрдХ рдореЗрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрди рдореЙрдбреНрдпреВрд▓ рдХреЗ рдХреЛрдб рдХреЛ рдореБрдЦреНрдп рдЧреБрдЪреНрдЫрд╛ рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗ рдФрд░ рдЖрд╡реЗрджрди рд▓реЛрдб рд╣реЛ рдЬрд╛рдПрдЧрд╛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рд╕рднреА рдХреЛрдбред
рд░реВрдЯрд┐рдВрдЧ рдореЗрдВ рдПрдХ рдЖрд▓рд╕реА рдореЙрдбреНрдпреВрд▓ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рд╕рд╣реА рддрд░реАрдХрд╛ рд╣реИред
const routes: Routes = [ { path: 'reports', loadChildren: './reports/reports.module#ReportsModule' } ];
рддреЛ рдЖрдк рд╡рд┐рд╢реЗрд╖ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ "#" рд╣реИ рдФрд░ рдРрдк рдХреЛ рдкрддрд╛ рдЪрд▓ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдореБрдЦреНрдп рдРрдк рд╕реЗ рдЕрд▓рдЧ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред
рдореБрд╕реАрдмрддреЗрдВ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ

рдлрд╝реАрдЪрд░ рдореЙрдбреНрдпреВрд▓ рдЖрдкрдХреЗ рдРрдк рдХреЗ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдм рдареАрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рдПрдХ рдХрдВрдкрд╛рдЗрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА npm рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? - рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдЯреНрд░рд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдлрд╝реАрдЪрд░ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░реЗрдВрдЧреЗред
const routes: Routes = [ { path: 'reports',
рдЗрд╕ рддрд░рд╣ рдХреА рдШреЛрд╖рдгрд╛ рдХреЗ рдХрд╛рд░рдг рдпрд╣ рд╕рдВрдХрд▓рд┐рдд рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИрдВред
рдЖрдк рдПрдХ рдЖрд╡рд░рдг рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд░реВрдЯ рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
import { ReportsModule } from "my-lib"; @NgModule({ imports: [ReportModule], exports: [ReportModule] }) export class ReportsWrapperModule { } const routes: Routes = [ { path: 'reports', loadChildren: './wrapper.module#ReportsWrapperModule' } ];
рд▓реЗрдХрд┐рди, рдЬреЛ 15 рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП 15 рд░реИрдкрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ? - рдореИрдВ рдирд╣реАрдВ!
рд╕рдВрднрд╡ рд╕рдорд╛рдзрд╛рди

рдореИрдВ рдЫрд┐рдкрд╛рдКрдВрдЧрд╛ рдирд╣реАрдВ рдореИрдВрдиреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рдмрд░реНрдмрд╛рдж рдирд╣реАрдВ рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рд╡реЗрдмрдкреИрдХ рдпрд╛ рдХреБрдЫ рдХреЛрдгреАрдп CLI рдХреЗ рдХрд╛рд░рдг рдХреНрдпреЛрдВ рд╣реЛрддрд╛ рд╣реИред рдореБрдЭреЗ рджреЛ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдорд┐рд▓реЗред
рд╕рдорд╛рдзрд╛рди # 1ред рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕рдВрдХрд▓рд┐рдд рдФрд░ рдлрд╝реАрдЪрд░ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдХреЛрдИ рдиреЗрд╕реНрдЯреЗрдб рдлрд╝реАрдЪрд░ рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ рд╣реИрдВ
рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХред
рдкрд╣рд▓рд╛ рдЪрд░рдг рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ рдХрд┐ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд▓реЛрдбрдЪрд┐рд▓реНрдбреНрд░реЗрди рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ
type LoadChildren = string | LoadChildrenCallback; type LoadChildrenCallback = () => Type<any> | NgModuleFactory<any> | Promise<Type<any>> | Observable<Type<any>>;
рджрд┐рд▓рдЪрд╕реНрдк! рдЗрд╕рд▓рд┐рдП, рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрд╡рд╢реНрдпрдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рд╡рд╛рджрд╛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдпрд╛рдд () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред
рдЕрдЧрд▓рд╛ рдХреЛрдб рдареАрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
const routes: Routes = [ { path: 'reports', loadChildren: () => import('my-lib').then((res) => res.ReportsModule) } ];
рдУрд╣, рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ? - рд╣рдо рдХрдВрд╕реЛрд▓ рдореЗрдВ рдПрд░рд░реНрд╕ рджреЗрдЦрддреЗ рд╣реИрдВ ... рд╣рд╛рдВ, рдмрд╕ tsconfig.json рдмрджрд▓ рджреЗрдВ
{ .. "module": "esNext", .. }
рдЕрдм рдареАрдХ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИред
рд╕рдорд╛рдзрд╛рди # 2ред рдлрд╝реАрдЪрд░ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдиреЗрд╕реНрдЯреЗрдб рдлрд╝реАрдЪрд░ рдореЙрдбреНрдпреВрд▓ рд╣реИрдВ (рдХреЗрд╡рд▓ рдЧреИрд░-рд╕рдВрдХрд▓рд┐рдд рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)
рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХред
рдЖрдкрдХреЛ npm рдкреИрдХреЗрдЬ рдХреА рдкреИрдХреЗрдЬрд┐рдВрдЧ рд╕реЗ рдкрд╣рд▓реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ;
рдЬреИрд╕рд╛ рдХрд┐ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рд╕реНрд░реЛрдд рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рд╣реИ, рдЖрдкрдХреЛ рдЗрд╕реЗ рдЕрдкрдиреЗ рдРрдк рдХреА рд╕рдВрдХрд▓рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдмрд╕ tsconfig.app.json рдмрджрд▓реЗрдВ;
"exclude": [ "test.ts", "**/*.spec.ts", "../node_modules/**/*.spec.ts", "../node_modules/**/test.ts" ], "include": [ "*.ts", "./environments", "./app", "../node_modules/my-lib" ]
рдЕрдЪреНрдЫреА рдЦрдмрд░ - рдЖрдпрд╛рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ () ;
const routes: Routes = [{ path: "reports", loadChildren: "my-lib#ReportsModule" }];
Tadam!
рдкреБрдирд╢реНрдЪ рдпреЗ рд╕рдорд╛рдзрд╛рди рдХреЗрд╡рд▓ 7 рдХреЛрдгреАрдп рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ред
рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЖрдирдВрдж рд▓реЗрдВред