问题描述
我正在将我的应用程序从 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
选项来忽略不兼容的对等依赖项,并在以后解决这些警告。我应该这样做吗?如果我这样做会破坏具有不兼容对等依赖项的包吗?
解决方法
我遇到了同样的问题,这是我解决的步骤
- 确保您的节点版本大于 10
- 运行
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.
- 运行
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,ng-packagr)
-
到这一步,您的
package.json
文件已更新。运行ng serve
以确保一切正常 检查警告。大多数将与兼容性有关,因为大多数与角度相关的软件包都期望版本 10