追記: 最新では scope が providedIn に変わってます。 github.com Angular v6では、これまでのDependency Injectionの仕組みをTree-Shaking可能にするためのオプション機能を追加します。 概要を説明するために簡単なスライドを作りました。 現状の問題 現在のDependency Injectionの仕組みでは、Injectionされるサービス(Injectable)はProviderの登録と、Injectorからの参照の2箇所で、静的に参照される必要があります。 たとえどこからもInjectionされないサービスでも、Providerを登録する時点でNgModuleからの参照が発生するため、ビルド時に不要なコードをふるい落とすTree-Shakingの対象にすることができませんでした。 新しいアプローチ Angular v6では
![Angular v6で導入されるTree-Shakable DIの紹介 - 余白](https://cdn-ak-scissors.b.st-hatena.com/image/square/ca29181b7031cf5db866e34714919d4245849e94/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fl%2Flacolaco%2F20180301%2F20180301145501.png)