首页 > 解决方案 > 更新 Angular 8 无法读取未定义的属性 ngInjectableDef

问题描述

我已经将我的 Angular 项目从 v7 更新到 v8.2.14,现在当我运行ng serve它时,控制台中出现了这个错误:

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:834)
  at core.js:16346
  at _callFactory (core.js:30486)
  at _createProviderInstance (core.js:30429)
  at resolveNgModuleDep (core.js:30388)

我搜索了很多,但没有一个解决方案解决了我的问题。

这是我的 package.json

"dependencies": {
  "@angular/animations": "8.2.14",
  "@angular/cdk": "^8.2.3",
  "@angular/common": "8.2.14",
  "@angular/compiler": "8.2.14",
  "@angular/core": "8.2.14",
  "@angular/forms": "^8.2.14",
  "@angular/material": "^8.2.3",
  "@angular/platform-browser": "8.2.14",
  "@angular/platform-browser-dynamic": "8.2.14",
  "@angular/platform-server": "8.2.14",
  "@angular/router": "8.2.14",
  ...
},
"devDependencies": {
  "@angular-devkit/build-angular": "~0.803.20",
  "@angular/cli": "^8.3.23",
  "@angular/compiler-cli": "^8.2.14",
  "@angular/language-service": "8.2.14",
  ...
}

更新:

它在我运行时起作用ng build。我只在运行时收到错误ng serve

标签: angularangular8

解决方案


仍然无法找出问题的根本原因。

但我只是:

  1. node_modules通过运行删除:(npx rimraf node_modules确保您在npm>=v5.2.0或仅rimraf全局安装)
  2. 再次安装它们:npm i

瞧!我的项目再次运行。

PS:不能保证它是否也适合你。但值得一试,因为它对我有用。


推荐阅读