title: Angular 6 Services: providedIn: 'root' vs CoreModule
body: <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>