'Angular 9 upgrade peer dependency issue

When I try to upgrade angular using its documentation to version 9, I get following peer dependency error:

Package "@angular/compiler-cli" has a missing peer dependency of "tslib" @ "^1.10.0". Package "@angular/animations" has a missing peer dependency of "tslib" @ "^1.10.0". Package "@angular/common" has a missing peer dependency of "tslib" @ "^1.10.0". Package "@angular/compiler" has a missing peer dependency of "tslib" @ "^1.10.0". Package "codelyzer" has an incompatible peer dependency to "@angular/compiler" (requires ">=2.3.1 <8.0.0 || >7.0.0-beta <8.0.0" (extended), would install "9.1.13"). Package "@angular/core" has a missing peer dependency of "tslib" @ "^1.10.0". Package "codelyzer" has an incompatible peer dependency to "@angular/core" (requires ">=2.3.1 <8.0.0 || >7.0.0-beta <8.0.0" (extended), would install "9.1.13"). Package "@angular/forms" has a missing peer dependency of "tslib" @ "^1.10.0". Package "@angular/platform-browser" has a missing peer dependency of "tslib" @ "^1.10.0". Package "@angular/http" has an incompatible peer dependency to "@angular/platform-browser" (requires "7.2.16" (extended), would install "9.1.13"). Package "@angular/platform-browser-dynamic" has a missing peer dependency of "tslib" @ "^1.10.0". Package "@angular/router" has a missing peer dependency of "tslib" @ "^1.10.0".

Here are the dependencies:

"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/forms": "^8.2.14",
    "@angular/http": "^7.2.16",
    "@angular/material": "^7.3.7",
    "@angular/platform-browser": "^8.2.14",
    "@angular/platform-browser-dynamic": "^8.2.14",
    "@angular/router": "^8.2.14",
    "@types/underscore": "^1.8.8",
    "ang-jsoneditor": "^1.6.2",
    "core-js": "^2.4.1",
    "cors": "^2.8.4",
    "hammerjs": "^2.0.8",
    "jsoneditor": "^5.24.7",
    "jsoneditor2": "^1.0.0",
    "lodash": "^4.17.20",
    "moment": "^2.24.0",
    "ng-multiselect-dropdown": "0.2.4",
    "ngx-ace-wrapper": "^7.3.0",
    "ngx-ui-loader": "^7.2.2",
    "rxjs": "^6.6.3",
    "rxjs-compat": "^6.6.3",
    "underscore": "^1.9.1",
    "zone.js": "^0.9.1"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^0.803.29",
    "@angular/cli": "^8.3.29",
    "@angular/compiler-cli": "^8.2.14",
    "@angular/language-service": "^8.2.14",
    "@compodoc/compodoc": "^1.1.11",
    "@types/jasmine": "~2.8.3",
    "@types/jasminewd2": "~2.0.2",
    "@types/node": "~6.0.60",
    "codelyzer": "^4.5.0",
    "express": "^4.16.3",
    "jasmine-core": "~2.8.0",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~2.0.0",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "^1.2.1",
    "karma-jasmine": "~1.1.0",
    "karma-jasmine-html-reporter": "^0.2.2",
    "mini-css-extract-plugin": "^0.8.0",
    "protractor": "^5.3.2",
    "ts-node": "~4.1.0",
    "tslint": "~5.9.1",
    "typescript": "^3.5.3"
  }

Any suggestion?



Solution 1:[1]

The --force flag is the only thing that worked for me:

ng update --force @angular/core@9 @angular/cli@9

Solution 2:[2]

For me nothing worked. So I manually changed the version of tslib to the one it's complaining about... and it worked!

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Vlad GURDIGA
Solution 2 cigien