Chunk不包含延迟加载的组件

问题描述 投票:1回答:1

我刚刚将Angular 9应用程序拆分为2个模块,以优化加载时间。不幸的是,编译产生的块很小,似乎只包含我的功能模块和路由器的代码。该模块中包含的所有组件仍在主js文件中。

这是我所做的:

AppModule

@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 { }

SharedModule:

@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
  • main-es2015.js:3.1MB
  • polyfills-es2015:62KB
  • runtime-es2015:3KB
  • 我会理解,由于所有依赖性,main应该更大,但是它不应该包含功能模块的组件。

感谢您的帮助

我刚刚将Angular 9应用程序拆分为2个模块,以优化加载时间。不幸的是,编译产生的块很小,似乎只包含我的代码...

angular lazy-loading angular-module angular-ivy
1个回答
0
投票

@@ MikeOne在他的评论中是正确的,我不应该在我的主模块中包括我的功能模块:

© www.soinside.com 2019 - 2024. All rights reserved.