Я только что закончил разделять свое приложение Angular 9 на 2 модуля, чтобы оптимизировать время загрузки. К сожалению, фрагмент, созданный компиляцией, очень мал и, кажется, содержит только код моего функционального модуля и маршрутизатора. Все компоненты, включенные в этот модуль, все еще находятся в основном файле js.
Вот что я сделал:
Модуль приложения
@NgModule({
declarations: [
//List of components (21)
],
imports: [
BrowserModule,
BrowserAnimationsModule, // required animations module
HttpClientModule,
AppRoutingModule,
SharedModule,
ConfigModule // My feature Module
],
providers: [
AuthGuard,
DpGuard,
AITIGuard,
ApiService,
StatusSocketService,
VideoSocketService,
Title
],
bootstrap: [AppComponent]
})
export class AppModule { }
Общий модуль:
@NgModule({
declarations: [
// List of shared components (7)
],
imports: [
CommonModule,
FormsModule,
NgbModule,
TreeModule,
TranslateModule.forChild()
],
exports: [
PasswordStrengthBarComponent,
CameraslistComponent,
VideoComponent,
MaskdrawerComponent,
FilterselectorComponent,
TranslateModule,
NgbModule,
FormsModule,
TreeModule,
ZonedrawerComponent
]
})
export class SharedModule { }
Модуль функций (ConfigModule)
@NgModule({
declarations: [
//LIST OF FEATURE COMPONENTS (47)
],
imports: [
SharedModule,
CommonModule,
ConfigRoutingModule,
HttpClientModule
]
})
export class ConfigModule { }
Функциональный модуль лениво загружается в маршруты приложения с помощью:
{
path: 'config',
canActivate: [AuthGuard],
loadChildren:() => import('./config/config.module').then(m => m.ConfigModule)
}
И, наконец, функциональный модуль определяет свои собственные маршруты следующим образом:
const routes: Routes = [{
path: '',
canActivate: [AuthGuard],
children : [
{ path: '', component:MenuconfigComponent },
{ path: 'system',component: ConfigSystemComponent},
... ,
]
}];
Что мне не хватает?
Я ожидал, что фрагмент содержит все, что входит в функциональный модуль, а не только небольшую часть кода.
Результаты компиляции таковы:
- 5-es2015.js : 4KB
- main-es2015.js: 3,1 МБ
- полифиллы-es2015: 62 КБ
- время выполнения-es2015: 3 КБ
Я понимаю, что main должен быть больше из-за всех зависимостей, но он не должен содержать компоненты функционального модуля.
Спасибо за вашу помощь