4

我最近将一个项目升级到 Angular 8,我尝试将 loadChildren 导入切换为新语法

例如来自:

loadChildren: './maintenance/maintenance.module#MaintenanceModule',

至:

loadChildren:() => import('./maintenance/maintenance.module').then(m => m.MaintenanceModule),

app-routing 的创建方式如下:

@NgModule({
  imports: [
    RouterModule.forRoot(appRoutes, {
      scrollPositionRestoration: 'enabled',
      enableTracing: false,
    }),
  ],
  exports: [RouterModule],
})
export class AppRoutingModule { }

然而,在构建项目时,似乎没有模块被延迟加载。使用 Webpack 包分析器,我可以看到所有路由模块都包含在主包中,并且导航到这些路由时也没有发生网络活动。

有人知道我在这里想念什么吗?

4

1 回答 1

6

终于解决了这个问题,我需要在根级别 tsconfig.json 中升级我的目标/模块配置。

我变了:

"target": "es5",
"module": "commonjs",

至:

"target": "es2015",
"module": "esnext",

延迟加载现在有效

于 2019-06-05T10:35:28.343 回答