我想在我的Angular 8应用程序中实现懒加载,但是当我使用官方文档提供的语法时,我的模块会被急切地加载。
当我使用Angular 8提供的语法时:
const routes: Routes = [{
path: 'lazy',
// The new import() syntax
loadChildren: () => import('./lazy/lazy.module').then(m => m.LazyModule)
}];
我没有收到任何错误提示,但是在构建应用程序时,我没有得到一个新的代码块,当导航到模块路由时,在Chrome浏览器的“网络”选项卡中什么也没有出现。(尽管我可以正常导航到该模块)
但如果我将其改写为:
const routes: Routes = [{
path: 'lazy',
// The following string syntax for loadChildren is deprecated
loadChildren: './lazy/lazy.module#LazyModule'
}];
(这是旧的语法)它工作正常。
涉及的模块绝对没有在其他地方导入,结果的差异仅来自于更改语法。
我想知道是否有我遗漏的事情。我想也许是我的Angular没有正确设置为8版(或其他包)
这是我使用 ng version
命令后得到的结果:
Package Version
-----------------------------------------------------------
@angular-devkit/architect 0.800.4
@angular-devkit/build-angular 0.800.4
@angular-devkit/build-optimizer 0.800.4
@angular-devkit/build-webpack 0.800.4
@angular-devkit/core 8.0.4
@angular-devkit/schematics 8.0.4
@angular/cdk 8.0.0
@angular/cli 8.0.4
@angular/material 8.0.0
@ngtools/webpack 8.0.4
@schematics/angular 8.0.4
@schematics/update 0.800.4
rxjs 6.5.2
typescript 3.4.5
webpack 4.30.0
我尝试创建一个新的示例项目,并且在那里设法让它工作,但从我所看到的来看,两个项目的所有版本都是相同的。
不知道是什么原因导致新的语法无法工作?
import
语句,导致了加载问题。 - Antoniossss