【问题标题】:How to Upgrade Angular 7 to Angular 13如何将 Angular 7 升级到 Angular 13
【发布时间】:2022-06-18 13:08:18
【问题描述】:

我有一个非常过时的 Angular 材质项目,我需要更新到 13

运行npm outdated后我看到了这些结果

根据Angular update guide,我一次只需要升级一个市长版本,它推荐这些命令:

cmd /C "set "NG_DISABLE_VERSION_CHECK=1" && npx @angular/cli@8 更新 @angular/cli@8 @angular/core@8"

但在运行该命令后,我收到以下错误:

  • 包“nativescript-angular”与“typescript”有不兼容的对等依赖(需要“~3.1.1”,将安装“3.5.3”)。
  • 包“codelyzer”对“@angular/compiler”有不兼容的对等依赖(需要 ">=2.3.1 6.0.0-beta
  • 包“codelyzer”对“@angular/core”有不兼容的对等依赖(需要 ">=2.3.1 6.0.0-beta
  • 包“codelyzer”对“@angular/common”有不兼容的对等依赖(需要 ">=2.3.1 6.0.0-beta
  • 包“nativescript-angular”与“zone.js”有不兼容的对等依赖(需要“^0.8.4”,将安装“0.9.1”)。
  • 包“codelyzer”对“@angular/platform-b​​rowser”有不兼容的对等依赖(需要 ">=2.3.1 6.0.0-beta
  • 包“codelyzer”与“@angular/platform-b​​rowser-dynamic”有不兼容的对等依赖(需要 ">=2.3.16.0.0-beta
  • 发现不兼容的对等依赖项。见上文。

我曾尝试手动更新这些软件包中的每一个,但它变成了依赖关系的噩梦,目前我无法解决。

我希望能够升级到 Angular 13(进行所需的代码更改)并且我想知道解决此问题的正确方法。

更新

当使用 --force 时也会失败并出现不同的错误

运行此命令时:

ng 更新 --all --force

【问题讨论】:

    标签: angular typescript


    【解决方案1】:

    按照文档告诉你的一步一步来。

    您可以在升级命令中添加--force。然后它会忽略所有这些incompatible peer dependencies. 然后你可以尝试启动你的应用程序,如果它工作,一切都很好。

    如果没有,则升级出现问题的软件包。

    对 angular 的每个主要版本更改重复此步骤。

    第二个错误告诉您尝试添加以下标志:retry this command with --force, or --legacy-peer-deps

    这对您解决问题有帮助吗?

    【讨论】:

    • 我已经用“--force”结果更新了我的问题,它仍然失败,也许我把标志放在错误的地方?
    • 当您搜索新的错误信息时会得到什么结果?您可以将其也作为文本而不是图像发布吗?然后我们可以帮助您搜索这个问题。
    • 我尝试将其发布为文本但格式全乱了,我尝试了 QUOTE 和其他格式,它们都将行合并在一起,感谢您的帮助。
    【解决方案2】:

    您可以使用ng update --all --forcenpm install --save --legacy-peer-deps。它基本上避免/忽略所有依赖项检查并在适用的情况下更新所有包。虽然一般不推荐,但我不得不以这种方式进行更新,因为其他建议似乎对我不起作用。

    【讨论】:

    • 如果包太多,请尝试使用我在答案中添加的上述命令。
    • 我已经更新了我的问题,使用该命令的结果,它也失败了
    • 试试这个npm install --save --legacy-peer-deps
    • 感谢最后一个似乎有效,您能否更新您的回答以进行投票等
    【解决方案3】:

    事实证明,从旧版本的 Angular 7 迁移到 13 并不像上述任何一个答案那么简单。

    我最终做的是创建一个新的 Angular 项目,使用版本 13,然后开始将以下元素从旧版本复制粘贴到新版本

    • src/应用程序
    • src/模型
    • 源/服务

    当然上面的列表仅供参考,它会根据你的文件夹结构和角度版本而改变

    然后我只需运行 ng -s 或让 typescript 语言服务告诉我什么是 sintax 错误或缺少的部分(向模块添加组件、缺少导入等)

    这可能很无聊,但我的代码和我知道的比试图修复旧 npm 包之间无休止的依赖关系的噩梦更好(其中一些甚至更改了名称)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-06
      • 1970-01-01
      • 2019-11-24
      • 1970-01-01
      • 2020-08-27
      • 2020-02-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多