С помощью Angular 6 ниже предпочтительный способ создания сервисов Singleton:
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root',
})
export class UserService {
}
From Angular doc: Когда вы предоставляете услугу на корневом уровне, Angular создает единый общий экземпляр HeroService и вводит в любой класс, который его запрашивает. Регистрация провайдера в метаданных @Injectable также позволяет Angular оптимизировать приложение, удалив службу, если она не будет использоваться в конце концов.
Также,
providers: [
// no need to place any providers due to the 'providedIn' flag...
]
Итак, значит ли это, что нам больше не нужен CoreModule? Мы можем импортировать сервисы и другие распространенные модули непосредственно в AppModule.