【问题标题】:Will an Angular module that exports all my pipes support tree shaking?导出所有管道的 Angular 模块是否支持摇树?
【发布时间】:2019-02-07 23:15:40
【问题描述】:

我有一个模块专门用于保存我的 Angular 应用程序的所有管道。

仅导出管道的模块示例。

@NgModule({
    imports: [
        CommonModule
    ],
    declarations: [
        FromNowPipe,
        ToNowPipe,
        ShortAgoPipe,
        SuffixPeriodPipe
    ],
    providers: [
        FromNowPipe,
        ToNowPipe,
        ShortAgoPipe,
        SuffixPeriodPipe
    ],
    exports: [
        FromNowPipe,
        ToNowPipe,
        ShortAgoPipe,
        SuffixPeriodPipe
    ]
})
export class PipesModule {
}

我一直想知道一个包含我所有管道的模块是否会破坏树抖动。从未使用过的管道仍在添加到最终捆绑包中。

我问的原因是管道不是组件。所以 AOT 编译器可能不会像对组件和指令那样跟踪它们的使用。

我是否应该将我的管道分解成更小的模块,然后只在我知道需要它们时才导入模块?

【问题讨论】:

    标签: angular typescript webpack


    【解决方案1】:

    与任何其他 Angular 组件/指令一样,管道会发生相同的树抖动机制。

    这听起来对延迟加载性能更重要。

    看看 Ng Material 是如何管理组件的,是不是每个组件都有一个模块。

    总之,我建议您将 Pipes 分解为单独的模块或小组。

    【讨论】:

      猜你喜欢
      • 2019-07-14
      • 2023-03-17
      • 2014-03-03
      • 2011-11-29
      • 1970-01-01
      • 2020-03-09
      • 2010-10-23
      • 2019-01-08
      • 2016-04-30
      相关资源
      最近更新 更多