Угловая циклическая зависимость при включении плюща - PullRequest
1 голос
/ 11 октября 2019

После включения 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)

Я пытаюсь выяснить, где циклическая зависимостьи почему он работает нормально, когда не используется плющ. Я попытался использовать madge (madge --circular --extensions ts ./), но циклическая зависимость не была найдена.

Редактировать: Я вручную прошел через все свои службы и проверил, что тамнет циклической зависимости между ними

Ответы [ 2 ]

0 голосов
/ 12 октября 2019

У нас похожая проблема, но она не решилась в нашем случае. Мы ищем возможное решение!

0 голосов
/ 11 октября 2019

Оказывается, что в моих провайдерах app.module у меня был класс с {provideIn: 'root'} в @Injectable (), удаление которого исправило это.

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

До

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

После

@Injectable()
export class AppErrorHandler implements ErrorHandler {

Я не знаю, почему это не было проблемой до плюща, даже с AoT

...