A good example is the AngularFireModule
. Many of the Firebase services (auth, etc) may not be referenced from the application, and should be tree-shaken if needed. But they rely on the user providing a configuration token, and thus need to be in the same injector in which the user configures Firebase.
@NgModule({
imports: [AngularFireModule.configureApp({...})]
})
class LazyLoadedModuleThatUsesFirebase {}