从 Angular 7 更新到 8 后,“无法读取未定义属性‘地图’中的错误”

Sim*_*mon 7 typescript angular

从 Angular 7 升级到 8 后,我遇到了一个奇怪的错误。每次我用 npm start 启动程序时,都会发生以下错误:“无法读取未定义属性‘地图’中的错误”。

控制台上没有更多信息,所以我找不到原因所在。因此,我试图在我的代码中注释掉 .map 的每一次出现。不幸的是,发生了同样的错误。此外,我更新了所有依赖项,但没有任何效果。

从 7 升级到 8 后有没有其他人遇到过类似的问题?我的 package.json 看起来像这样:

  "name": "test",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^8.2.14",
    "@angular/cdk": "^7.3.7",
    "@angular/common": "~8.2.14",
    "@angular/compiler": "^8.2.14",
    "@angular/core": "^8.2.14",
    "@angular/flex-layout": "^8.0.0-beta.27",
    "@angular/forms": "~8.2.14",
    "@angular/material": "^7.3.7",
    "@angular/platform-browser": "~8.2.14",
    "@angular/platform-browser-dynamic": "^8.2.14",
    "@angular/router": "~8.2.14",
    "@ngx-translate/core": "^11.0.1",
    "@ngx-translate/http-loader": "^4.0.0",
    "apollo-angular": "^1.8.0",
    "apollo-angular-link-http": "^1.9.0",
    "apollo-cache-inmemory": "^1.6.5",
    "apollo-client": "^2.6.8",
    "apollo-link": "^1.2.13",
    "core-js": "^2.6.11",
    "graphql": "^14.6.0",
    "graphql-tag": "^2.10.3",
    "hammerjs": "^2.0.8",
    "ng2-split-pane": "^1.4.0",
    "ng2-tooltip-directive": "^2.8.17",
    "ngx-infinite-scroll": "^8.0.1",
    "resize-observer-polyfill": "^1.5.1",
    "rxjs": "~6.5.4",
    "tslib": "^1.10.0",
    "typescript": "^3.6.4",
    "zone.js": "^0.10.2"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^0.803.24",
    "@angular/cli": "^8.3.25",
    "@angular/compiler-cli": "^9.0.4",
    "@angular/language-service": "~8.2.14",
    "@types/jasmine": "~2.8.8",
    "@types/jasminewd2": "^2.0.8",
    "@types/node": "^12.11.1",
    "codelyzer": "^5.1.2",
    "jasmine-core": "~2.99.1",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "^4.4.1",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "^2.0.6",
    "karma-jasmine": "~1.1.2",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "^5.4.3",
    "ts-node": "~7.0.0",
    "tslint": "~5.11.0"
  },
  "browser": {
    "fs": false,
    "os": false,
    "path": false
  }
}
Run Code Online (Sandbox Code Playgroud)

控制台日志:

> ng serve

0% compiling
Compiling @angular/core : es2015 as esm2015
10% building 3/3 modules 0 activei ?wds?: Project is running at http://localhost:4200/webpack-dev-server/
i ?wds?: webpack output is served from /
i ?wds?: 404s will fallback to //index.html

chunk {main} main.js, main.js.map (main) 2.01 kB [initial] [rendered]
chunk {polyfills} polyfills.js, polyfills.js.map (polyfills) 684 bytes [initial] [rendered]
chunk {runtime} runtime.js, runtime.js.map (runtime) 6.15 kB [entry] [rendered]
chunk {styles} styles.js, styles.js.map (styles) 35 kB [initial] [rendered]
chunk {vendor} vendor.js, vendor.js.map (vendor) 340 kB [initial] [rendered]
Date: 2020-02-29T17:32:51.227Z - Hash: 5c477ba64195de423e38 - Time: 3371ms

ERROR in Cannot read property 'map' of undefined
** Angular Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ **
i ?wdm?: Failed to compile.
Run Code Online (Sandbox Code Playgroud)

ine*_*nes 9

可能是 @angular/compiler-cli 版本错误(8.x)。希望有帮助。

  • 运行 `npm uninstall --save-dev @angular/cli @angular/compiler @angular/compiler-cli` ,然后运行 ​​`npm i -D @angular/cli@latest @angular/compiler@latest @angular/compiler-cli@最新的为我解决了这个问题。 (2认同)