В настоящее время я работаю над приложением, которое шло нормально, и вдруг я получаю эту ошибку. Ничего не изменилось, за исключением того, что мы работали над Angular 8, а другой разработчик использовал Angular 9. После того, как мы объединили код, эта ошибка начала появляться случайным образом.

Я удалил папку node_modules, запустил npm cache clean --force и сделал новую установку npm, но все еще получаю эту ошибку. Любая помощь приветствуется.

Ошибка:

ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'ngInjectableDef' of undefined
TypeError: Cannot read property 'ngInjectableDef' of undefined
    at getInjectableDef (core.js:361)
    at resolveNgModuleDep (core.js:30377)
    at NgModuleRef_.get (core.js:31578)
    at injectInjectorOnly (core.js:734)
    at ɵɵinject (core.js:744)
    at injectArgs (core.js:837)
    at core.js:16346
    at _callFactory (core.js:30486)
    at _createProviderInstance (core.js:30429)
    at resolveNgModuleDep (core.js:30388)
    at resolvePromise (zone-evergreen.js:797)
    at resolvePromise (zone-evergreen.js:754)
    at zone-evergreen.js:858
    at ZoneDelegate.invokeTask (zone-evergreen.js:391)
    at Object.onInvokeTask (core.js:39680)
    at ZoneDelegate.invokeTask (zone-evergreen.js:390)
    at Zone.runTask (zone-evergreen.js:168)
    at drainMicroTaskQueue (zone-evergreen.js:559)
    at ZoneTask.invokeTask [as invoke] (zone-evergreen.js:469)
    at invokeTask (zone-evergreen.js:1603)
0
CodeWarrior 15 Апр 2020 в 12:24
Я думаю, что ваш ответ можно найти здесь
 – 
Jeroenouw
15 Апр 2020 в 12:31
Перед переустановкой вы запускали flush node cache?
 – 
Kenny
15 Апр 2020 в 12:31
Убедитесь, что в конструкторе вы вызываете метод super, если вы расширяете какой-либо класс
 – 
Kenny
15 Апр 2020 в 12:32
И @Kenny мой код не имеет ничего общего с вызовом super, поскольку я не расширяю какой-либо класс. Да, я также сбрасывал кеш узла.
 – 
CodeWarrior
15 Апр 2020 в 12:42

1 ответ

Помимо других ответов, которые уже есть на SO, я публикую свои выводы, так как это может помочь кому-то еще в будущем.

Один из других разработчиков удалил служебный файл из приложения и проверил код. Мы объединились, все было хорошо.

ng build --prod прошло нормально

ng serve обслужил приложение нормально

Приложение работало, но эта проблема возникла, когда мы перешли к компоненту, где этот файл все еще упоминался и был внедрен в конструктор. Visual Studio 2019 не выдавал ошибок, поэтому это было немного странно.

Вероятно, это редкий сценарий, поскольку никто не удаляет файлы часто, но надеюсь, что это поможет другим, если они столкнутся с этим сценарием.

0
CodeWarrior 16 Апр 2020 в 08:13