【问题标题】:Migration failed: Incompatible peer dependencies found - Upgrading Angular to Version 12迁移失败:发现不兼容的对等依赖项 - 将 Angular 升级到版本 12
【发布时间】:2021-08-06 12:32:09
【问题描述】:

我正在将我的应用程序从 Angular v11 升级到 Angular v12。当我尝试升级 Angular 包时出现此错误:

ng update @angular/core@12 @angular/cli@12
Migration failed: Incompatible peer dependencies found 

Package has an incompatible peer dependency to "@angular/common" (requires "^8.1.3 || ^9.0.0" (extended), would install "12.0.0").
Package has an incompatible peer dependency to "@angular/core" (requires "^8.1.3 || ^9.0.0" (extended), would install "12.0.0").

这些只是警告,但迁移因此而失败。

我可以选择使用--force 选项来忽略不兼容的对等依赖项并在以后解决这些警告。我应该这样做吗?如果我这样做会破坏具有不兼容对等依赖项的包吗?

【问题讨论】:

  • 是的,您使用的外部软件包可能无法正常运行。请检查您的项目库是否支持 Angular 12
  • 您能否提供更多信息,例如在您的情况下哪些依赖项不兼容?
  • 我添加了它。只有@ng-bootstrap/ng-bootstrap 库正在显示,但我不知道是因为升级会在发现第一个不兼容的对等依赖项后停止,还是只有这个。
  • 除了这一行之外没有其他痕迹吗 Migration failed: Incompatible peer dependencies found?
  • 是的,不兼容的软件包列表,但我没有将其包括在内,因为它与项目相关。

标签: javascript angular typescript angular12


【解决方案1】:

我遇到了同样的问题,这是我解决的步骤

  1. 确保您的节点版本大于 10
  2. 运行ng update @angular/core@12 @angular/cli@12。您最有可能收到如下错误
Package "@angular-eslint/builder" has an incompatible peer dependency to "@angular/cli" (requires ">= 11.2.0 < 12.0.0", would install "12.0.0").
× Migration failed: Incompatible peer dependencies found.
Peer dependency warnings when installing dependencies means that those dependencies might not work correctly together.
You can use the '--force' option to ignore incompatible peer dependencies and instead address these warnings later.
  See "C:\Users\KOTIENO1\AppData\Local\Temp\ng-gY5FIE\angular-errors.log" for further details.

我们可以使用--force 忽略警告的警告建议。我们现在会这样做 3) 运行ng update。这将返回我们需要运行的所有命令

Using package manager: 'npm'
Collecting installed dependencies...
Found 68 dependencies.
    We analyzed your package.json, there are some packages to update:

      Name                                    Version                  Command to update
     -------------------------------------------------------------------------------------
      @angular-eslint/schematics              4.2.0 -> 12.0.0          ng update @angular-eslint/schematics
      @angular/cdk                            11.2.11 -> 12.0.0        ng update @angular/cdk
      @angular/cli                            11.2.11 -> 12.0.0        ng update @angular/cli
      @angular/core                           11.2.12 -> 12.0.0        ng update @angular/core
      @ngrx/store                             11.1.1 -> 12.0.0         ng update @ngrx/store

    There might be additional packages which don't provide 'ng update' capabilities that are outdated.
    You can update the additional packages by running the update command of your package manager.
  1. 运行ng update @angular-eslint/schematics @angular/cdk @angular/cli @angular/core @ngrx/store --force。这是第 3 步,您的可能略有不同。记得加--force标志

这成功运行并出现许多警告

npm WARN ERESOLVE overriding peer dependency
npm WARN While resolving: furaha-app@0.0.0
npm WARN Found: @angular/compiler-cli@12.0.0
npm WARN node_modules/@angular/compiler-cli
npm WARN   @angular/compiler-cli@"~12.0.0" from the root project
npm WARN   3 more (@angular-devkit/build-angular, @angular/localize, ng-packagr)
npm WARN
npm WARN Could not resolve dependency:
npm WARN peer @angular/compiler-cli@"^12.0.0-next" from @angular-devkit/build-angular@12.0.0
npm WARN node_modules/@angular-devkit/build-angular
npm WARN   @angular-devkit/build-angular@"~12.0.0" from the root project
npm WARN ERESOLVE overriding peer dependency
npm WARN While resolving: furaha-app@0.0.0
npm WARN Found: typescript@4.2.4
npm WARN node_modules/typescript
npm WARN   typescript@"4.2.4" from the root project
npm WARN   4 more (@angular-devkit/build-angular, ...)
npm WARN
npm WARN Could not resolve dependency:
npm WARN peer typescript@"~4.2.3" from @angular-devkit/build-angular@12.0.0
npm WARN node_modules/@angular-devkit/build-angular
npm WARN   @angular-devkit/build-angular@"~12.0.0" from the root project
npm WARN ERESOLVE overriding peer dependency
npm WARN While resolving: furaha-app@0.0.0
npm WARN Found: @angular/compiler@12.0.0
npm WARN node_modules/@angular/compiler
npm WARN   @angular/compiler@"~12.0.0" from the root project
npm WARN   3 more (@angular/compiler-cli, @angular/localize, ng-packagr)
  1. 通过此步骤,您的package.json 文件已更新。运行 ng serve 以确保一切正常

  2. 检查警告。大多数将与兼容性有关,因为大多数与角度相关的软件包都期望版本 10

【讨论】:

  • 是的,我使用了--force 选项。我对预期版本低于 12 的 3rd 方软件包有疑问。
猜你喜欢
  • 2021-08-02
  • 1970-01-01
  • 2022-06-10
  • 2019-02-03
  • 1970-01-01
  • 2021-01-31
  • 2021-09-03
  • 1970-01-01
  • 2021-08-03
相关资源
最近更新 更多