我刚刚将 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 { }
特性模块在 App 的路由中被延迟加载:
{
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
- 主es2015.js:3.1MB
- polyfills-es2015:62KB
- 运行时-es2015:3KB
我会理解 main 由于所有依赖项应该更大,但它不应该包含功能模块的组件。
谢谢你的帮助