Tree shaking for libraries in Angular 8

Solution 1:

All you need is the

providedIn: 'root'

Services that are provided in root are tree shakeable. If it is provided in the root then you get the same singleton instance in the entire application. You only need to add it to a providers array if you want a new instance of the service across your module instead of the global singleton instance.