Z zarchiwizowanego glosariusza Angular.io v2 dla Barrel
* :
Beczka to sposób na zgrupowanie eksportu z kilku modułów do jednego modułu wygody. Sam beczka jest plikiem modułu, który ponownie eksportuje wybrane eksporty innych modułów.
Wyobraź sobie trzy moduły w folderze bohaterów:
// heroes/hero.component.ts
export class HeroComponent {}
// heroes/hero.model.ts
export class Hero {}
// heroes/hero.service.ts
export class HeroService {}
Bez beczki konsument potrzebowałby trzech oświadczeń importowych:
import { HeroComponent } from '../heroes/hero.component.ts';
import { Hero } from '../heroes/hero.model.ts';
import { HeroService } from '../heroes/hero.service.ts';
Możemy dodać beczkę do folderu bohaterów (nazywanego przez konwencję index), który eksportuje wszystkie te elementy:
export * from './hero.model.ts'; // re-export all of its exports
export * from './hero.service.ts'; // re-export all of its exports
export { HeroComponent } from './hero.component.ts'; // re-export the named thing
Teraz konsument może importować to, czego potrzebuje, z beczki.
import { Hero, HeroService } from '../heroes'; // index is implied
Każdy pakiet z zakresem kątowym ma beczkę o nazwie index.
Zobacz także WYJĄTEK: nie można rozwiązać wszystkich parametrów
* UWAGA: Barrel
zostało usunięte z nowszych wersji słownika Angular .
AKTUALIZACJA
W przypadku najnowszych wersji Angulara plik beczki należy edytować jak poniżej,
export { HeroModel } from './hero.model';
export { HeroService } from './hero.service';
export { HeroComponent } from './hero.component';