2

我正在为产品构建运行以下命令

ng serve --prod --env=qa

运行此命令后,我没有收到任何错误,但是一旦我localhost:4200/在浏览器中运行,我会收到以下错误

Uncaught Error: No provider for function (){}!
at b (core.es5.js:1169)
at core.es5.js:1207
at e._throwOrNull (core.es5.js:2649)
at e._getByKeyDefault (core.es5.js:2688)
at e._getByKey (core.es5.js:2620)
at e.get (core.es5.js:2489)
at dt (core.es5.js:9492)
at core.es5.js:9529
at pt (core.es5.js:9503)
at core.es5.js:9456

任何帮助,将不胜感激

4

2 回答 2

1

我的 app.module.ts 中的这个代码块也有类似的异常

providers: [
  ...
  CacheService,
  {
    provide: HttpCaching,
    useFactory: httpFactory, 
    deps: [XHRBackend, RequestOptions, CacheService]
  }
]
...
export function httpFactory(xhrBackend: XHRBackend, requestOptions: RequestOptions, cacheService: CacheService): Http {
  return new HttpCaching(xhrBackend, requestOptions, cacheService);
}

它在开发模式下工作得很好,但是在生产模式下运行它时注入我的 CacheService 失败,给出错误:未捕获(承诺):错误:没有函数提供者(){}!

请让我知道为什么我们会收到此错误。

于 2017-12-07T02:26:06.190 回答
1

我知道已经很晚了,但我遇到了同样的错误并用这个脚本修复了它(在 npm 安装之后)

"npm-cleanup" : "rimraf ./node_modules/PACKAGE_WITH_ANGULAR_MODULES/node_modules"

在我的 package.json 中,通过删除所有具有冲突 Angular 版本的包的 node_modules 。

也许它可以帮助仍在为这种错误而苦苦挣扎的人。

于 2018-10-08T07:01:46.390 回答