[英]Angular 5 NullInjectorError: No provider for n
當我使用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)
這可能是由於JIT
(即時)和AOT
(提前)編譯器的不同。 在文檔中閱讀更多相關信息。
如果您運行ng serve
或ng build
,它將默認使用JIT
。 但是使用--prod
標志,使用AOT
。
嘗試運行ng serve --aot
或ng serve --prod
以查看更易於理解的錯誤消息。 由於這不再慢,我建議在開發過程中始終使用--aot
標志。 你會更早地看到問題。
我遇到了同樣的問題,對我有用的是將 HttpClientModule 添加到應用程序根模塊中的導入。 導致錯誤的原因是我在另一個模塊中導入。
// app.module.ts
import { HttpClienteModule } from '@angular/common/http';
@NgModule({
imports: [HttpClienteModule]
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.