Влияют ли неиспользуемые модули, экспортируемые SharedModule, на производительность в приложении Angular?

У меня есть модуль материала, который содержит импорт / экспорт компонентов Angular Material.

import { NgModule } from '@angular/core';
import {
  MdToolbarModule,
  MdIconModule,
  MdSidenavModule,
} from '@angular/material';

@NgModule({
  imports: [
    MdToolbarModule,
    MdIconModule,
    MdSidenavModule,
  ],

  exports: [
    MdToolbarModule,
    MdIconModule,
    MdSidenavModule,
  ],
})

export class MaterialModule {}

Я импортирую и экспортирую MaterialModule в SharedModule.

import { NgModule } from '@angular/core';

// Modules
import { MaterialModule } from './material.module';

@NgModule({
  imports: [
    MaterialModule,
  ],
  declarations: [
    // components
  ],
  exports: [
    MaterialModule,

    // components
  ],
  providers: [
    // utils
  ]
})
export class SharedModule {}

Например, я импортирую SharedModule, чтобы использовать его компоненты, а также чтобы мне не приходилось снова и снова импортировать компоненты Angular Material в каждый созданный мной модуль, использующий Angular Material. Я импортирую SharedModule в ExampleModule, но ExampleModule использует только MdIconModule из MaterialModule. Допустим, это обычная практика для большого приложения. Влияет ли это на производительность как в режиме разработки, так и в производственном режиме (сборка AOT)?


person jeanl    schedule 18.05.2018    source источник


Ответы (1)


Я думаю, что ваша настройка в порядке и полностью соответствует рекомендациям Angular docs. Вы также можете изучить размер своего пакета при сборке в производственной среде, чтобы дважды проверить.

Я считаю, что в грядущем компиляторе Ivy мы даже поправимся с дрожанием деревьев.

person sugarme    schedule 18.05.2018