Angular 8:为什么未满足对等依赖@angular/common@8.0.0?

Angular 8: Why UNMET PEER DEPENDENCY @angular/common@8.0.0?

我升级到最新的Angular8版本,更新很顺利。它现在像更新前一样工作。

我在执行 npm list 时看到奇怪的消息(在 npm install 完成后):

UNMET PEER DEPENDENCY @angular/common@8.0.0
...
UNMET PEER DEPENDENCY @angular/compiler@8.0.0
...
UNMET PEER DEPENDENCY @angular/core@8.0.0

为什么会这样?

我想这些包并没有丢失,因为应用程序运行良好,它们在我的 package.json 文件中:

"@angular/common": "8.0.0",
"@angular/compiler": "^8.0.0",
"@angular/core": "8.0.0",

我有最新的 nodenpm:

npm -v
6.9.0
node -v
v12.3.1

编辑 2npm ls 输出为:Git gist

编辑: package.json 是:

{
  "name": "webapp",
  "version": "0.1.0",
  "engines": {
    "node": "^12.3.1",
    "npm": "^6.9.0"
  },
  "scripts": {
    "ng": "ng",
    "test": "ng test",
    "lint": "ng lint",
    "pree2e": "webdriver-manager update",
    "e2e": "ng e2e",
    "postinstall": "ng build --prod --aot --build-optimizer --optimization",
    "compodoc": "compodoc --tsconfig compodoc-config.ts --output ./doc --theme material --name 'API documentation'"
  },
  "private": true,
  "dependencies": {
    "@angular-devkit/build-angular": "^0.800.0",
    "@angular/animations": "^8.0.0",
    "@angular/cdk": "^8.0.0",
    "@angular/cli": "^8.0.0",
    "@angular/common": "8.0.0",
    "@angular/compiler": "^8.0.0",
    "@angular/compiler-cli": "^8.0.0",
    "@angular/core": "8.0.0",
    "@angular/flex-layout": "^8.0.0-beta.26",
    "@angular/forms": "^8.0.0",
    "@angular/material": "^8.0.0",
    "@angular/platform-browser": "^8.0.0",
    "@angular/platform-browser-dynamic": "^8.0.0",
    "@angular/router": "^8.0.0",
    "@swimlane/ngx-charts": "^11.1.0",
    "acorn": "^6.1.1",
    "ag-grid-angular": "^20.0.0",
    "ag-grid-community": "^20.0.0",
    "compression": "^1.7.4",
    "core-js": "^2.6.3",
    "crypto-js": "^3.1.9-1",
    "d3": "^5.9.2",
    "d3-sankey": "^0.12.1",
    "express": "^4.17.1",
    "force-ssl-heroku": "^1.0.2",
    "hammerjs": "^2.0.8",
    "ng-recaptcha": "^4.2.1",
    "ngx-logger": "^3.3.11",
    "ngx-webstorage-service": "^4.0.1",
    "rxjs": "~6.5.2",
    "ts-node": "~8.0.2",
    "tslib": "^1.9.3",
    "typescript": "^3.4.5",
    "zone.js": "~0.9.1"
  },
  "devDependencies": {
    "@angular/language-service": "^8.0.0",
    "@types/d3": "^5.7.2",
    "@types/d3-sankey": "^0.11.0",
    "@types/jasmine": "^3.3.13",
    "@types/jasminewd2": "~2.0.6",
    "@types/selenium-webdriver": "^4.0.0",
    "codelyzer": "~4.5.0",
    "jasmine-core": "~3.4.0",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "^4.1.0",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.5",
    "karma-jasmine": "~2.0.1",
    "karma-jasmine-html-reporter": "^1.4.2",
    "karma-mocha-reporter": "^2.2.5",
    "protractor": "^5.4.2",
    "tslint": "~5.12.1"
  }
}
npm ERR! peer dep missing: @angular/common@^6.0.0 || ^7.0.0, required by ngx-logger@3.3.13
npm ERR! peer dep missing: @angular/compiler@>=2.3.1 <8.0.0 || >7.0.0-beta <8.0.0, required by codelyzer@4.5.0
npm ERR! peer dep missing: @angular/core@>=2.3.1 <8.0.0 || >7.0.0-beta <8.0.0, required by codelyzer@4.5.0
npm ERR! peer dep missing: @angular/core@^6.0.0 || ^7.0.0, required by ng-recaptcha@4.2.1
npm ERR! peer dep missing: @angular/core@^6.0.0 || ^7.0.0, required by ngx-logger@3.3.13

输出表明您的某些第 3 方软件包需要某些 angular 软件包的较低版本 (< 8.0.0)。

您必须:

  • 将那些第 3 方软件包的版本升级到与 angular@8.0.0
  • 兼容的版本
  • 将您的 angular 版本降级为与第 3 方要求兼容的版本
  • 忽略错误,假设 angular 的主要版本之间引入的更改不会破坏第 3 方包