所以我按照一些关于如何在没有角度路由器的情况下进行延迟加载的教程。我设法做到了一定程度。
import {NgModule} from '@angular/core';
import {GeolocalisationComponent} from './geolocalisation.component';
import {AngularOpenlayersModule} from 'ngx-openlayers';
import {CommonModule} from '@angular/common';
const components = [
GeolocalisationComponent,
];
@NgModule({
declarations: [
components
],
exports: [
components
],
imports: [
CommonModule,
AngularOpenlayersModule,
],
entryComponents: [
components
]
})
export class GeolocalisationModule {
}
然后在angular.json
我有
"lazyModules": [
"src/app/components/engine/sections/geolocalisation/geolocalisation.module",
我加载它像这样:
const path = 'src/app/components/engine/sections/geolocalisation/geolocalisation.module#GeolocalisationModule';
this.loader.load(path).then((moduleFactory: NgModuleFactory<any>) => {
const moduleRef = moduleFactory.create(this.injector);
const compFactory = moduleRef.componentFactoryResolver
.resolveComponentFactory(GeolocalisationComponent);
geolocalisationOutlet.createComponent(compFactory);
});
一切正常但我注意到我在geolocalisation.component.ts
中放置的代码在构建(函数和导入)时仍然在main.js
中。因此,如果我在这里导入一个巨大的插件,它仍然在main.js
内部构建,这对我来说是懒惰加载的目的。其他人有同样的问题吗?
通过函数和导入我的意思是我在geolocalisation.component.ts
内部构建的函数,如果我导入类似momentjs
的东西,它会将所有momentjs
放在main.js
文件中,即使我只需要这个组件。