Angular 5 NullInjectorError:没有n的提供者

Igo*_*gor 4 javascript production typescript angular-cli angular

当我启动我的网站时,ng serve一切正常,但每次尝试启动生产都会出错NullInjectorError: No provider for n.我检查了我写的所有服务都包含在NgModule提供程序中.因为这是生产,所有文件都是缩小和丑化的,所以我不知道究竟是什么导致了这个问题.有没有办法检查它或者可能从错误详细信息中获取?

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)
Run Code Online (Sandbox Code Playgroud)

Kim*_*ern 12

这可能是由于JIT(即时)和AOT(提前)编译器的不同.在文档中阅读更多相关信息.

如果您运行ng serve或默认情况下ng build将使用它JIT.--prod然而,使用该标志AOT.

尝试运行ng serve --aotng serve --prod查看更易于理解的错误消息.由于这不再慢,我建议--aot在开发过程中始终使用该标志.你会更早地看到问题.