Ленивые загрузочные модули Angular 7 без маршрутов все еще помещают машинопись в main.js - PullRequest
0 голосов
/ 30 апреля 2019

Итак, я следовал некоторым урокам о том, как выполнять отложенную загрузку без углового маршрутизатора.И мне удалось сделать это до такой степени.

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 дажехотя мне это нужно только для этого компонента.

...