javascript - 迁移失败 : Incompatible peer dependencies found - Upgrading Angular to Version 12

标签 javascript angular typescript angular12

我正在将我的应用程序从 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, @angular/localize, ng-packagr)
    
  • 通过这一步您的package.json文件已更新。运行ng serve确保一切按预期工作
  • 检查警告。大多数将与兼容性有关,因为大多数与 Angular 相关的软件包都期望版本 10 <= @angular/core <12。这可以根据具体情况处理,例如更新这些包
  • 关于javascript - 迁移失败 : Incompatible peer dependencies found - Upgrading Angular to Version 12,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67566416/

    相关文章:

    javascript - Drupal.t 没有出现在翻译中

    javascript - mootools 或 javascript : what does $tmp stand for or what does it pertain too

    Angular2+ 如何在运行时切换语言环境?

    angular - 如何在 Angular 6 中创建震动动画?

    angular - 由于文件传输已弃用,因此无法下载文件

    c# - 工具版本不支持 VsTsc 任务

    javascript - 如何将 JSON 日期插入模板

    javascript - 无法查看所有 JavaScript 日志消息

    typescript - 如何绑定(bind) Angular 2 表达式和 TypeScript 方法?

    reactjs - 将 props 传递给 TS 中的 makeStyle