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
