Angular 5 NullInjectorError: No provider for n
Asked Answered
G

2

9

When I'm starting my website with ng serve everything works fine, but every try to launch a production getting an error NullInjectorError: No provider for n. I checked all services that I wrote are included in NgModule providers. Because this is the production, all files are minified and uglified, so I don't know what exactly cause the problem. Is there any way to check it or maybe it's possible to get from the error details?

ERROR Error: StaticInjectorError(G)[n -> n]: 
StaticInjectorError(Platform: core)[n -> n]: 
NullInjectorError: No provider for n!
at n.get (main.94f42881e2fdceca85d7.bundle.js:1)
at main.94f42881e2fdceca85d7.bundle.js:1
at n (main.94f42881e2fdceca85d7.bundle.js:1)
at n.get (main.94f42881e2fdceca85d7.bundle.js:1)
at main.94f42881e2fdceca85d7.bundle.js:1
at n (main.94f42881e2fdceca85d7.bundle.js:1)
at n.get (main.94f42881e2fdceca85d7.bundle.js:1)
at Pi (main.94f42881e2fdceca85d7.bundle.js:1)
at main.94f42881e2fdceca85d7.bundle.js:1
at Li (main.94f42881e2fdceca85d7.bundle.js:1)
Gesticulation answered 7/6, 2018 at 10:42 Comment(0)
C
21

This is probably due to the differences of JIT (just-in-time) and AOT (ahead-of-time) compiler. Read more about this in the docs.

If you run ng serve or ng build it will use JIT by default. With the --prod flag however, AOT is used.

Try running ng serve --aot or ng serve --prod to see a more comprehensible error message. Since this is not much slower any more, I'd recommend always using the --aot flag during development. You will see problems much earlier.

Cutter answered 7/6, 2018 at 11:27 Comment(1)
Awesome, that is exactly what I needed!Gesticulation
A
5

I faced the same problem, what worked for me was adding HttpClientModule to imports in the app root module. What causes the error was that i imported in another module.

// app.module.ts
import { HttpClientModule } from '@angular/common/http';

@NgModule({
imports: [HttpClientModule]
})
Aerobic answered 3/12, 2021 at 19:1 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.