我正在使用带有 Node 14.x 和 Npm 6.X 的 Angular 10.x 应用程序,如何仅升级 Node?

问题描述 投票:0回答:1

我正在将 Angular 10.x 应用程序与 Node 14.x 和 Npm 6.X 一起使用,现在由于 Node 14 已达到生命周期,我确实需要至少单独升级 Node。我可以只升级 Node 吗?

或者有其他方法可以解决这个问题吗?当我尝试将节点升级到更高版本时,我已经发现了一些交叉依赖冲突问题。

我尝试升级 Node 并遇到了一些交叉依赖问题,那么有没有什么最小的方法来解决这个问题?

更新

  • 将 Node 与 npm 一起更新到 16.x,并且工作正常(但 Node 16.x 也已停产)。
  • 我尝试了 package.json 分析器,得到了 16 个以上需要审查的包。

现在,无论有或没有影响,将节点升级到 18.x 都会导致一些依赖性问题。

angular upgrade
1个回答
1
投票

进行升级时,您确实需要考虑 4 件事:

(1)单元测试

应该进行 100% 覆盖率的单元测试,以确保升级时不会出现任何中断 - 显然这是梦想,时间并不总是允许这样做 - 对于较小的站点,您可能只需手动测试即可摆脱困境

(2) npm 包

您应该首先更新尽可能多的 npm 包,尽管如果您的站点很大并且缺乏单元测试,这可能会带来相当高的风险。

升级 npm 包(不是 Angular)有望减少对等依赖项失败的问题,当然,新包通常包括错误修复、性能改进

如果您有很多软件包需要升级,那么最好先升级低风险的软件包 - 例如任何不跳转主要版本的内容(主要版本升级可能会有重大更改)

https://www.npmjs.com/package/npm-check-updates在这里很有用,应该全局安装

此处应使用缓慢缓慢的方法 - 立即升级所有软件包可能会很难识别导致问题的任何升级

(3) 角度

使用 https://update.angular.io/ 来帮助你

按照上述步骤应该可以最大限度地减少 Angular 升级的任何问题

但是,如果您不想升级 Angular 或没有时间,那么您现在可以跳过此步骤

(4) 节点

转到下一个 LTS 版本 - 避免非 LTS 版本


这些是我遵循的步骤,尽管您可能可以在不升级 Angular 的情况下摆脱困境(同样,这取决于对等依赖关系)

有时,当您遇到对等依赖问题时,可以使用 --force 标志强制升级,尽管这存在潜在风险,应尽可能避免

© www.soinside.com 2019 - 2024. All rights reserved.