javascript - Hvordan laste children dynamisk fra en annen server eller CDN (under kjøring) ved å bruke Angular?
Hvordan kan jeg laste et lazy-modul (loadchildren) på server A fra server B? Jeg har søkt gjennom noen lenker på Google, men jeg kan ikke finne det riktige svaret med et eksempel.
Jeg har funnet dette. Hvordan kan jeg bruke loadChildren i mine ruter når modulen min er på en CDN, som kan være likt spørsmålet mitt, men jeg forstod ikke eksemplet på det og svaret virker ufullstendig for meg.
Mine spørsmål er:
- Må jeg kompilere hele prosjektet inkludert late moduler?
- Kan jeg kompilere bare lat modul og referere til hovedmodulen via
loadchildren? - Hvordan kan jeg lage pakker av separerte hoved- og late modulprosjekt?
- Hvis jeg skiller hovedprosjektet og den late modulen, bør jeg inkludere
platformBrowserDynamic().bootstrapModule(FirstLazyModule)i den late modulen også?
Kravet mitt er å lage en pakke med en lat modul ved bruk av webpack/angular og hoste den på server B mens hoved bootstrap-modulen er hostet på server A hvor jeg kan gi en lenke til den late modulen til Routes for hoved- (bootstrapper-) modulens egenskap loadchildren under kjøretid.
Merk: Jeg vil ikke kompilere hele prosjektet med late moduler og vertschunks til en annen server.
Eksempel
Apprute uten kunnskap om lat modul, bare CDN-lenke.
// http links to load lazy modules from server B
const m1Link = 'http link of M1 which hosted on server B'
const m2Link = 'http link of M2 which hosted on server B'
const route:Routes = [
{ path:'M1', loadchildren: m1Link, canActive: m1Fn() },
{ path:'M2', loadchildren: m2Link, canActive: m2Fn() }
]
Lat modul
const routes: Routes = [{
path: '',
component: DefaultComponent,
children: [{ path: '', component: LazyChildComponent}]
}];
@NgModule({
imports: [ CommonModule, RouterModule.forChild(routes) ],
exports: [ RouterModule ],
declarations: [ LazyChildComponent ]
})
export class FirstLazyModule { }