如何将 Angular 7 升级到 Angular 13
How to Upgrade Angular 7 to Angular 13
我有一个非常过时的 Angular material 项目,我需要更新到 13
在 运行 npm outdated
之后我看到了这些结果
根据 Angular update guide 我一次只需要升级一个 mayor 版本,它推荐这些命令:
cmd /C "set "NG_DISABLE_VERSION_CHECK=1" && npx @angular/cli@8 update
@angular/cli@8 @angular/core@8"
但是在 运行 该命令之后我得到了这些错误:
- 包“nativescript-angular”对“typescript”具有不兼容的对等依赖性(需要“~3.1.1”,将安装“3.5.3”)。
- 包“codelyzer”对“@angular/compiler”有不兼容的对等依赖(需要“>=2.3.1 <7.0.0 || >6.0.0-beta <7.0.0”(扩展), 将安装“8.2.14”)。
- 包“codelyzer”对“@angular/core”有不兼容的对等依赖(需要“>=2.3.1 <7.0.0 || >6.0.0-beta <7.0.0”(扩展), 将安装“8.2.14”)。
- 包“codelyzer”对“@angular/common”有不兼容的对等依赖(需要“>=2.3.1 <7.0.0 || >6.0.0-beta <7.0.0”(扩展), 将安装“8.2.14”)。
- 软件包“nativescript-angular”对“zone.js”具有不兼容的对等依赖性(需要“^0.8.4”,将安装“0.9.1”)。
- 包“codelyzer”对“@angular/platform-browser”有不兼容的对等依赖(需要“>=2.3.1 <7.0.0 || >6.0.0-beta <7.0.0”(扩展), 将安装“8.2.14”)。
- 包“codelyzer”对“@angular/platform-browser-dynamic”有不兼容的对等依赖(需要“>=2.3.1<7.0.0 || >6.0.0-beta <7.0.0” (扩展),将安装“8.2.14”)。
- 发现不兼容的对等依赖项。见上文。
我尝试手动更新其中的每一个包,但它变成了依赖关系的噩梦,目前我无法解决。
我希望能够升级到 Angular 13(进行所需的代码更改)并且我想知道解决此问题的正确方法是什么。
更新
使用 --force 时也会失败并出现不同的错误
当运行这个命令时:
ng 更新 --all --force
你一步一步来,正如文档告诉你的那样。
您可以在升级命令中添加一个--force
。然后它会忽略所有这些 incompatible peer dependencies.
然后你可以尝试启动你的应用程序,如果它有效,一切都很好。
如果没有,则升级产生问题的软件包。
对 angular 的每个主要版本更改重复此步骤。
第二个错误告诉您尝试添加以下标志:retry this command with --force, or --legacy-peer-deps
这对您解决问题有帮助吗?
您可以使用 ng update --all --force
或 npm install --save --legacy-peer-deps
。它基本上 avoids/ignores 所有 dependency-checks 并在适用的情况下更新所有包。虽然一般不推荐,但我不得不以这种方式进行更新,因为其他建议似乎对我不起作用。
我有一个非常过时的 Angular material 项目,我需要更新到 13
在 运行 npm outdated
之后我看到了这些结果
根据 Angular update guide 我一次只需要升级一个 mayor 版本,它推荐这些命令:
cmd /C "set "NG_DISABLE_VERSION_CHECK=1" && npx @angular/cli@8 update @angular/cli@8 @angular/core@8"
但是在 运行 该命令之后我得到了这些错误:
- 包“nativescript-angular”对“typescript”具有不兼容的对等依赖性(需要“~3.1.1”,将安装“3.5.3”)。
- 包“codelyzer”对“@angular/compiler”有不兼容的对等依赖(需要“>=2.3.1 <7.0.0 || >6.0.0-beta <7.0.0”(扩展), 将安装“8.2.14”)。
- 包“codelyzer”对“@angular/core”有不兼容的对等依赖(需要“>=2.3.1 <7.0.0 || >6.0.0-beta <7.0.0”(扩展), 将安装“8.2.14”)。
- 包“codelyzer”对“@angular/common”有不兼容的对等依赖(需要“>=2.3.1 <7.0.0 || >6.0.0-beta <7.0.0”(扩展), 将安装“8.2.14”)。
- 软件包“nativescript-angular”对“zone.js”具有不兼容的对等依赖性(需要“^0.8.4”,将安装“0.9.1”)。
- 包“codelyzer”对“@angular/platform-browser”有不兼容的对等依赖(需要“>=2.3.1 <7.0.0 || >6.0.0-beta <7.0.0”(扩展), 将安装“8.2.14”)。
- 包“codelyzer”对“@angular/platform-browser-dynamic”有不兼容的对等依赖(需要“>=2.3.1<7.0.0 || >6.0.0-beta <7.0.0” (扩展),将安装“8.2.14”)。
- 发现不兼容的对等依赖项。见上文。
我尝试手动更新其中的每一个包,但它变成了依赖关系的噩梦,目前我无法解决。
我希望能够升级到 Angular 13(进行所需的代码更改)并且我想知道解决此问题的正确方法是什么。
更新
使用 --force 时也会失败并出现不同的错误
当运行这个命令时:
ng 更新 --all --force
你一步一步来,正如文档告诉你的那样。
您可以在升级命令中添加一个--force
。然后它会忽略所有这些 incompatible peer dependencies.
然后你可以尝试启动你的应用程序,如果它有效,一切都很好。
如果没有,则升级产生问题的软件包。
对 angular 的每个主要版本更改重复此步骤。
第二个错误告诉您尝试添加以下标志:retry this command with --force, or --legacy-peer-deps
这对您解决问题有帮助吗?
您可以使用 ng update --all --force
或 npm install --save --legacy-peer-deps
。它基本上 avoids/ignores 所有 dependency-checks 并在适用的情况下更新所有包。虽然一般不推荐,但我不得不以这种方式进行更新,因为其他建议似乎对我不起作用。