追記: 最新では scope が providedIn に変わってます。 github.com Angular v6では、これまでのDependency Injectionの仕組みをTree-Shaking可能にするためのオプション機能を追加します。 概要を説明するために簡単なスライドを作りました。 現状の問題 現在のDependency Injectionの仕組みでは、Injectionされるサービス(Injectable)はProviderの登録と、Injectorからの参照の2箇所で、静的に参照される必要があります。 たとえどこからもInjectionされないサービスでも、Providerを登録する時点でNgModuleからの参照が発生するため、ビルド時に不要なコードをふるい落とすTree-Shakingの対象にすることができませんでした。 新しいアプローチ Angular v6では