升级npm依赖项

本文详细介绍了如何安全地升级npm项目的依赖项,包括理解版本号的组成部分、使用语义版本控制、更新最新安全版本、主要版本升级的注意事项以及使用npm-check-updates工具批量更新依赖。
摘要由CSDN通过智能技术生成

我们如何安全地升级项目中的npm依赖项?依赖包版本之前的滑稽^~字符是什么意思?我们如何在项目中的npm依赖项上进行主要版本升级?我们将在这篇文章中找到。

版本零件

npm软件包版本控制遵循语义版本控制。因此,软件包版本包含3个部分-Major.Minor.Patch

  • 补丁。当进行了不破坏使用代码的错误修复时,此值将递增
  • 未成年人。当添加不会破坏耗时代码的功能时,此增量
  • 专业。进行重大更改时增加

什么是^~是什么意思?

一个版本通常^在其前面(例如^16.8.6)。这意味着可以安全地安装最新的次要版本。因此,在此示例中,^16.12.1如果它是中的最新版本,则可以安全地安装16.x

有时某个版本的~前面带有一个(例如~16.8.6)。这意味着只能安全地安装最新的修补程序版本。因此,在此示例中,^16.8.12如果它是中的最新版本,则可以安全地安装16.8.x

那么,npm install安装依赖项的最新安全版本吗?

是的,没有!

如果软件包已经安装到node_modules文件夹中,则npm install 不会更新任何软件包。

如果尚未安装软件包并且package-lock.json存在文件,npm install则将安装中指定的确切依赖版本package-lock.json

npm install如果node_modules文件夹中不存在依赖项,则会安装最新的安全版本的依赖项,并且没有package-lock.json文件。但是,你可能认为最新的安全版本还没有被安装,因为package.json是不变的,但如果你检查包中node_modules的文件夹,最新安全版本将被安装。

那么,如何安全地更新所有依赖项?

首先,可以通过运行以下命令来发现过时的依赖关系:

<span style="color:rgba(0, 0, 0, 0.9)"><span style="color:#cccccc"><code class="language-shell"><span style="color:#f08d49">npm</span> outdated</code></span></span>

依赖关系将列出:

 

 

的版本是可以采取(根据语义版本和最新安全版本^~前缀)。在最新的版本是在NPM注册表提供的最新版本。

可以使用以下命令将所有依赖项安全地更新为所需版本:

<span style="color:rgba(0, 0, 0, 0.9)"><span style="color:#cccccc"><code class="language-shell"><span style="color:#f08d49">npm</span> update</code></span></span>

除了更新node_modules文件夹中的软件包之外,package.jsonpackage-lock.json文件也会被更新。

如果我们不想更新所有软件包,则可以在命令末尾指定软件包名称:

<span style="color:rgba(0, 0, 0, 0.9)"><span style="color:#cccccc"><code class="language-shell"><span style="color:#f08d49">npm</span> update <span style="color:#7ec699">"react"</span> <span style="color:#7ec699">"react-dom"</span></code></span></span>

在上面的示例中,React已更新。

通过重大更改更新所有依赖项

那么,当发生重大版本更改时,我们如何升级依赖关系?

也许最安全的方法如下:

  • 检查相关程序包的更新日志,以了解可能影响我们应用程序的重大更改
  • 如果我们认为可以安全进行升级,请运行以下命令:
<span style="color:rgba(0, 0, 0, 0.9)"><span style="color:#cccccc"><code class="language-shell"><span style="color:#f08d49">npm</span> <span style="color:#f08d49">install</span> <span style="color:#67cdcc"><</span>packagename<span style="color:#67cdcc">></span>@latest</code></span></span>
  • 如果将多个软件包组合在一起,则可以将它们全部列出。下面的示例将React更新到最新版本:
<span style="color:rgba(0, 0, 0, 0.9)"><span style="color:#cccccc"><code class="language-shell"><span style="color:#f08d49">npm</span> <span style="color:#f08d49">install</span> react@latest react-dom@latest</code></span></span>
  • 通过进行一些测试来验证应用程序是否未损坏
  • 对主要版本有更改的其他软件包重复该过程

有没有一种更新所有依赖项(包括主要版本更改)的更快方法?因此,npm update除了主要版本更新外,还可以吗?

是的,有一个名为npm-check-updates的工具可以做到这一点。只需运行以下命令:

<span style="color:rgba(0, 0, 0, 0.9)"><span style="color:#cccccc"><code class="language-shell">npx npm-check-updates -u</code></span></span>

这会将依赖关系更新为文件中的最新版本(包括主要版本更改)package.json。如果我们乐意继续进行升级,则需要运行以下命令:

<span style="color:rgba(0, 0, 0, 0.9)"><span style="color:#cccccc"><code class="language-shell"><span style="color:#f08d49">npm</span> <span style="color:#f08d49">install</span></code></span></span>

然后,这将升级node_modules文件夹中的软件包,并且package-lock.json文件也将被更新。

总结一下

  • 使用npm outdated来发现过期了依赖性
  • 使用npm update进行安全的依赖升级
  • 使用npm install <packagename>@latest升级到包的最新主要版本
  • 使用npx npm-check-updates -u并将npm install所有依赖项升级到其最新的主要版本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值