У меня свежий угловой проект с 3 модулями.AppModule
, CoreModule
и TestModule
.
CoreModule
и TestModule
никак не связаны или импортированы в AppModule
. CoreModule
ленивые нагрузкиTestModule
ссылка на github
Проблема:
ЕслиЯ импортирую любые модули (например, 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 {
}