typescript - Kommer ett Angular-modul som exporterar alla mina pipes att stödja tree shaking?
Jag har en modul som är dedikerad till att hålla alla pipes för min Angular-applikation.
Ett exempel på ett modul som bara exporterar pipes.
@NgModule({
imports: [
CommonModule
],
declarations: [
FromNowPipe,
ToNowPipe,
ShortAgoPipe,
SuffixPeriodPipe
],
providers: [
FromNowPipe,
ToNowPipe,
ShortAgoPipe,
SuffixPeriodPipe
],
exports: [
FromNowPipe,
ToNowPipe,
ShortAgoPipe,
SuffixPeriodPipe
]
})
export class PipesModule {
}
Jag har undrat om en enda modul som innehåller alla mina pipes kommer att förstöra tree shaking. Där pipes som aldrig används fortfarande läggs till i de slutliga bundlarna.
Anledningen till att jag frågar är att rör inte är komponenter. Så AOT-kompilatorn kanske inte spårar deras användning på samma sätt som den gör för komponenter och direktiv.
Borde jag bryta upp mina pipelines i mindre moduler och sedan bara importera moduler när jag vet att de behövs?
Svar #1
Samma träd-skakningsmekanism sker med Pipes som med vilken annan Angular-komponent/-direktiv som helst.
Detta låter som om det är viktigare för prestandan vid lat inladdning.
När man ser på hur Ng Material hanterar komponenter, är det så att det finns en modul per komponent.
Sammanfattningsvis skulle jag föreslå att du delar upp Pipes antingen i separata moduler eller små grupper.