(новый угловой проект) Размер файла main.js увеличивается, когда я импортирую модули в изолированный функциональный модуль - PullRequest
0 голосов
/ 24 сентября 2019

У меня свежий угловой проект с 3 модулями.AppModule, CoreModule и TestModule.

  1. CoreModule и TestModule никак не связаны или импортированы в AppModule.
  2. CoreModule ленивые нагрузкиTestModule

ссылка на github enter image description here

Проблема:

ЕслиЯ импортирую любые модули (например, HttpClientModule и т. Д.) В TestModule, размер файла main.js увеличен.Насколько я понимаю, только размер AppModule должен влиять на размер main.js, а не на какой-либо функциональный модуль (TestModule).

В TestModule, если вы комментируете импорт модуля, размер main.js= 182 КБ (= 51 КБ gzip) после ng build --prod

В TestModule, если вы раскомментируете импорт модуля, main.js размер = 195 КБ (= 54,6 КБ gzip) после ng build --prod

Код:

AppModule

import {NgModule} from '@angular/core';
import {AppComponent} from './app.component';
import {BrowserModule} from '@angular/platform-browser';

@NgModule({
  declarations: [
    AppComponent,
  ],
  imports: [
    BrowserModule,
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule {
}

CoreModule

import {Route, RouterModule} from '@angular/router';
import {CoreWrapperComponent} from './core-wrapper.component';
import {NgModule} from '@angular/core';


const routes: Route[] = [
  {

    path: '',
    component: CoreWrapperComponent,
    children: [{
      path: 'test', loadChildren: './test.module#TestModule', canLoad: []
    }],
  },
  {path: '', redirectTo: `core/viewbots/test`, pathMatch: 'full'},
];

declare let areReducersRegistered;

@NgModule({
  declarations: [CoreWrapperComponent],
  entryComponents: [],
  imports: [
    RouterModule.forChild(routes),
  ],
  providers: []
})
export class CoreModule {
}

TestModule

import {NgModule} from '@angular/core';
import {Route, RouterModule} from '@angular/router';
import {CommonModule} from '@angular/common';
import {HttpClientModule} from '@angular/common/http';
import {FormsModule, ReactiveFormsModule} from '@angular/forms';

const routes: Route[] = [];

@NgModule({
  declarations: [],
  entryComponents: [],
  imports: [
    CommonModule,

    /*
    * If you comment following Module main.js size = 182kb (= 51kb gzip)
    * If you uncomment following Module main.js size = 195kb (= 54.6kb gzip)
    *
    * Since TestModule is not imported in AppModule in any way, adding or removing modules
    * in TestModule should have no impact on main.js file size
    * */
    // RouterModule,
    // HttpClientModule,
    // FormsModule,
    // ReactiveFormsModule,
  ],
})
export class TestModule {
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...