Angular 6 Services: providedIn: 'root' vs CoreModule : <p>With Angular 6, below is the preferred way to create singleton services:</p>

<pre><code>import { Injectable } from '@angular/core';

@Injectable({
  providedIn: 'root',
})
export class UserService {
}
</code></pre>

<p>From Angular doc:
When you provide the service at the root level, Angular creates a single, shared instance of HeroService and injects into any class that asks for it. Registering the provider in the @Injectable metadata also allows Angular to optimize an app by removing the service if it turns out not to be used after all.</p>

<p>Also,</p>

<pre><code>providers: [
    // no need to place any providers due to the `providedIn` flag...
  ]
</code></pre>

<p>So, does that mean we no more need <a href="https://angular.io/guide/styleguide#core-feature-module" rel="noreferrer">CoreModule</a>? We can import services and other common modules directly into AppModule.</p>
