Итак, я следовал некоторым урокам о том, как выполнять отложенную загрузку без углового маршрутизатора.И мне удалось сделать это до такой степени.
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
дажехотя мне это нужно только для этого компонента.