gpt4 book ai didi

启用 ivy 时的 Angular 循环依赖

转载 作者:行者123 更新时间:2023-12-03 14:38:37 24 4
gpt4 key购买 nike

在我的 angular 项目中启用 ivy 后,一切都会编译,但是在浏览器中启动应用程序时,我在应用程序引导期间收到以下错误:

Error: Cannot instantiate cyclic dependency! ApplicationRef
at throwCyclicDependencyError (core.js:5208)
at R3Injector.push../node_modules/@angular/core/__ivy_ngcc__/fesm5/core.js.R3Injector.hydrate (core.js:11763)
at R3Injector.push../node_modules/@angular/core/__ivy_ngcc__/fesm5/core.js.R3Injector.get (core.js:11590)
at injectInjectorOnly (core.js:648)
at ɵɵinject (core.js:653)
at injectArgs (core.js:730)
at Object.factory (core.js:11858)
at R3Injector.push../node_modules/@angular/core/__ivy_ngcc__/fesm5/core.js.R3Injector.hydrate (core.js:11767)
at R3Injector.push../node_modules/@angular/core/__ivy_ngcc__/fesm5/core.js.R3Injector.get (core.js:11590)
at injectInjectorOnly (core.js:648)

我正在努力找出循环依赖的位置以及为什么在不使用 Ivy 时它可以正常工作。我尝试使用 madge (madge --circular --extensions ts ./) 但没有找到循环依赖。

编辑:我已经手动检查了所有服务并验证它们之间没有循环依赖

最佳答案

事实证明,在我的 app.module 提供程序中,我在 @Injectable() 中有一个带有 {provideIn: 'root'} 的类,删除它修复了它。

providers: [
{ provide: ErrorHandler, useClass: AppErrorHandler }
]

之前
@Injectable({ providedIn: 'root' })
export class AppErrorHandler implements ErrorHandler {


@Injectable()
export class AppErrorHandler implements ErrorHandler {

我不知道为什么在 Ivy 之前这不是问题,即使有 AoT

关于启用 ivy 时的 Angular 循环依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58343973/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com