Angular v6
Tree-Shakable DI

@laco2net

Reference to Injectable

  • ProviderをNgModuleに登録している

    • かならずNgModuleから参照される

    • どこにもInjectされていないTokenもかならず参照が存在する

Un-tree-shakable

  • 使われていないサービスはふるい落としたい

    • 使うときだけProviderが登録される仕組みが必要

    • => Injectable / InjectionTokenに機能追加

Tree-shakable

Shakable Service

ProvideするNgModule

インスタンス生成factory

  • サービス自身が対応するNgModuleとfactoryを持つ

  • NgModule側からの参照がなくなり、Tree-Shaking可能になる

@Injectable({scope, factory})

Reference tree

  • Reduce bundle size

  • Avoid "providers hell"

    • Keep simpler AppModule

Benefits

Thanks!

@laco2net

Made with Slides.com