【发布时间】:2022-01-14 17:13:53
【问题描述】:
我正在按照 Angular 更新指南更新我的 Angular 应用程序,但我遇到了对等依赖项的错误。
首先我从 angular 8 更新到 9,但仍然存在对等依赖错误。所以我将此命令与--force 参数一起使用:
cmd /C "set "NG_DISABLE_VERSION_CHECK=1" && npx @angular/cli@9 update @angular/cli@9 @angular/core@9" --force
它有效!
然后从 Angular 9 到 10,同样的方法
npx @angular/cli@10 update @angular/core@10 @angular/cli@10 --force
而且它也有效。现在我想继续使用 Angular 11、12 和 13,但是当我使用这个命令时:
npx @angular/cli@11 update @angular/core@11 @angular/cli@11 --force
我收到此错误:
安装的 Angular CLI 版本已过时。
安装临时 Angular CLI 版本 11.2.18 以执行更新。
通过 npm 安装工具包。
通过 npm 安装工具包。
使用包管理器:'npm'
正在收集已安装的依赖项...
找到 61 个依赖项。
正在从注册表中获取依赖元数据...
包“@swimlane/ngx-charts”对“@angular/animations”有不兼容的对等依赖(需要“7.x || 8.x”(扩展),将安装“11.2.14”)。
包“@ng-bootstrap/ng-bootstrap”对“@angular/forms”有不兼容的对等依赖(需要“^8.0.0”(扩展),将安装“11.2.14”)。
包“@swimlane/ngx-charts”对“@angular/platform-browser”有不兼容的对等依赖(需要“7.x || 8.x”(扩展),将安装“11.2.14”)。
包“@swimlane/ngx-charts”对“@angular/platform-browser-dynamic”有不兼容的对等依赖(需要“7.x || 8.x”(扩展),将安装“11.2.14”)。
使用依赖项 @angular-devkit/build-angular @“0.1102.18”(原为“0.1002.4”)更新 package.json...
使用依赖项 @angular/cli @“11.2.18”(原为“10.2.4”)更新 package.json...
使用依赖项 @angular/compiler-cli @“11.2.14”(原为“10.2.5”)更新 package.json...
使用依赖项 @angular/language-service @“11.2.14”(原为“10.2.5”)更新 package.json...
使用依赖 karma @“6.3.11”(原为“5.0.9”)更新 package.json...
使用依赖项 @angular/animations @“11.2.14”(原为“10.2.5”)更新 package.json...
使用依赖项 @angular/common @“11.2.14”(原为“10.2.5”)更新 package.json...
使用依赖项 @angular/compiler @“11.2.14”(原为“10.2.5”)更新 package.json...
使用依赖项 @angular/core @“11.2.14”(原为“10.2.5”)更新 package.json...
使用依赖项 @angular/forms @“11.2.14”(原为“10.2.5”)更新 package.json...
使用依赖项 @angular/platform-browser @“11.2.14”(原为“10.2.5”)更新 package.json...
使用依赖项 @angular/platform-browser-dynamic @“11.2.14”(原为“10.2.5”)更新 package.json...
使用依赖项 @angular/router @“11.2.14”(原为“10.2.5”)更新 package.json...
更新 package.json(2808 字节)
⠧ 安装包 (npm)...npm 错误!代码 ERESOLVE
npm 错误! ERESOLVE 无法解决
npm 错误!
npm 错误!解析时:stacked@0.0.0
npm 错误!找到:@angular-devkit/build-angular@0.1002.4
npm 错误! node_modules/@angular-devkit/build-angular
npm 错误! dev @angular-devkit/build-angular@"~0.1102.18" 来自根项目
npm 错误!
npm 错误!无法解决依赖关系:
npm 错误! dev @angular-devkit/build-angular@"~0.1102.18" 来自根项目
npm 错误!
npm 错误!冲突的对等依赖关系:@angular/compiler-cli@11.2.14
npm 错误! node_modules/@angular/compiler-cli
npm 错误!来自@angular-devkit/build-angular@0.1102.18的对等@angular/compiler-cli@"^11.0.0 || ^11.2.0-next"
npm 错误! node_modules/@angular-devkit/build-angular
npm 错误! dev @angular-devkit/build-angular@"~0.1102.18" 来自根项目
npm 错误!
npm 错误!修复上游依赖冲突,或者重试
npm 错误!此命令与 --force 或 --legacy-peer-deps
npm 错误!接受不正确(并且可能被破坏)的依赖解决方案。
npm 错误!
npm 错误!有关完整报告,请参阅 C:\Users\leino\AppData\Local\npm-cache\eresolve-report.txt。npm 错误!可以在以下位置找到此运行的完整日志:
npm 错误! C:\Users\leino\AppData\Local\npm-cache_logs\2022-01-14T16_41_50_262Z-debug.log✖ 包安装失败,见上文。
× 迁移失败。有关详细信息,请参见上文。
我知道使用 --force 参数是个坏主意,但更喜欢在 Angular 更新后解决对等依赖项,而不是在每个版本上。
请问有人知道吗?
【问题讨论】:
-
这是一个依赖 - 不是一个依赖 - 在那个词的任何地方都没有“a”......
-
谢谢@marc_s。在法语中,它被称为“dépendance”,带有“a”。
-
你可能会遇到 npm 的问题,因为在 v8+ 中它会尝试升级 package-lock.json 的版本。我的建议是安装 npm v7 进行角度升级,然后再次安装最新的 npm
-
这可能会给你更多的想法stackoverflow.com/a/68159069/4604645