一文详解npm如何更新项目最新依赖包

 更新时间:2023年01月15日 11:29:43   作者:牛奔  
npm包的更新速度很快,为了将项目或者全局依赖更新到最新版本,下面这篇文章主要给大家介绍了关于npm如何更新项目最新依赖包的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

NPM 是什么?

Node 软件包管理器(NPM)提供了各种功能来帮助你安装和维护项目的依赖关系。

由于错误修复、新功能和其他更新,依赖关系可能会随着时间的推移而变得过时。你的项目依赖越多,就越难跟上这些更新。

老旧的软件包会对安全构成威胁,并会对性能产生负面影响。最新的软件包可以防止出现漏洞。这意味着定期检查和更新依赖是很重要的。

如何保持依赖是最新的

现在,你可以逐一查看 package.json 中的每一个单独的包,改变版本,然后运行 npm install <package>@latest 来获得最新版本。但这并不是最有效的方法。

想象一下,如果你有 20 个或更多的包,可以使用版本升级。相反,你应该制定一个工作流程,在过期的依赖关系数量增加和升级变得越来越难之前,定期检查新版本。

下面是一个我保持更新的工作流程:首先,发现哪些软件包需要更新,以及版本落后的程度。接下来,选择单独或一起批量更新软件包。始终对更新进行测试,以确保没有发生破坏性变化。

我更喜欢单独执行主要版本的更新。对于主要的更新,你很可能会遇到破坏性的变化。与许多包相比,撤销或处理与一个包有关的代码变化要容易得多。

在这篇文章中,我将详细介绍检查和升级依赖关系的方法。

怎样使用 npm outdated 命令

npm outdated

该命令将检查每个已安装的依赖关系,并将当前版本与 npm registry 中的最新版本进行比较。它在终端打印出一个表格,概述了可用的版本。

它是内置在 NPM 中的,所以不需要下载额外的软件包。npm outdated 是一个很好的开始,可以了解所需的依赖性更新的数量。

  • Current 是当前安装的版本。
  • Wanted 是根据semver 范围内的软件包的最大版本。
  • Latest 是在 npm registry 中被标记为最新的软件包版本。

使用这种方法,要安装每个软件包的更新,你只需要运行:

npm update

请记住,使用 npm update 它永远不会更新到一个主要的(major),具有破坏性变化的版本。它更新 package.jsonpackage-lock.json 中的依赖关系。它将使用想要的版本。

为了获得 "最新 "的版本,在单个安装中附加 @latest,例如 npm install react@latest

怎样使用 npm-check-updates

对于高级和可定制的升级体验,我推荐 npm-check-updates。这个包可以做所有 npm oudatednpm upgrade 能做的事情,并增加了一些自定义选项。不过,它确实需要安装一个包。

点击打开文档

要开始使用,请在全局安装 npm-check-updates 软件包:

npm install -g npm-check-updates

然后,运行 ncu 来显示要升级的软件包。与 npm outdated 类似,它不会产生任何变化。

ncu
Checking package.json
[====================] 12/12 100%
 
 @testing-library/user-event    ^13.5.0  →  ^14.2.1
 @types/jest                    ^27.5.2  →  ^28.1.4
 @types/node                  ^16.11.42  →  ^18.0.1
 
Run ncu -u to upgrade package.json

要升级依赖性,你只需要运行:

ncu --upgrade
 
// or 
ncu -u

资料:npm-check-updates

  • Red (显示红色) = major (主版本,或者说是大版本)
  • Cyan (显示青色) = minor(次要版本)
  • Green(显示绿色) = patch (补丁版本)

这个方法只更新 package.json 文件中的依赖关系,并且会选择最新的版本,即使它包括一个破坏性的变化。使用这种方法,npm install 不会自动运行,所以一定要在之后运行它来更新 package-lock.json

要选择你喜欢的版本类型,运行 ncu --target [patch, minor, latest, newest, greatest]

如何使用 npm-check-updates 互动模式

ncu --interactive
 
// or 
ncu -i

互动模式允许你选择特定的软件包进行更新。默认情况下,所有软件包都被选中。

向下浏览每一个软件包,用空格来取消选择,当你准备好升级所有选择的软件包时,回车键(enter)确定。

资料: npm-check-updates

有几种方法可以提升交互式 npm-check-updates 的体验。

ncu --interactive --format group

这个命令将软件包分组并组织成 主版本(major)、次要(minor)和补丁(patch)版本。

资料: npm-check-updates

npm-check-updates 提供了其他有用的工具,如 doctor mode,它可以安装升级并运行测试以检查破坏性变化。

总结

养成定期更新你的依赖关系的习惯,将有助于你的应用程序的安全性和性能。

npm oudatednpm-check-updates 都是有用的工具,可以检查那些可以使用版本升级的软件包。

https://www.freecodecamp.org/chinese/news/how-to-update-npm-dependencies/

到此这篇关于npm如何更新项目最新依赖包的文章就介绍到这了,更多相关npm更新项目最新依赖包内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Nodejs学习item【入门手上】

    Nodejs学习item【入门手上】

    这篇文章主要介绍了Nodejs学习item【入门手上】,需要的朋友可以参考下
    2016-05-05
  • 参考EventEmitter实现完整订阅发布功能函数

    参考EventEmitter实现完整订阅发布功能函数

    这篇文章主要为大家介绍了参考EventEmitter实现完整订阅发布功能函数示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • Node.js 使用命令行工具检查更新

    Node.js 使用命令行工具检查更新

    这篇文章主要介绍了Node.js 使用命令行工具检查更新的方法,使用Node.js开发命令行工具是开发者应该掌握的一项技能,适当编写命令行工具以提高开发效率,有需要的小伙伴可以参考下
    2017-06-06
  • Node.js 日志处理模块log4js

    Node.js 日志处理模块log4js

    今天和大家分享一下NodeJS中写日志的一个常用第三方包:Log4js.下面我们就来详细探讨下吧
    2016-08-08
  • Node.js中的不安全跳转如何防御详解

    Node.js中的不安全跳转如何防御详解

    安全是不容忽视的,每个开发者都知道它非常重要,真正严肃对待它的却没有几人。下面这篇文章主要给大家介绍了关于Node.js中不安全跳转如何防御的相关资料,文中通过示例代码介绍的非常详细。需要的朋友可以参考下
    2018-10-10
  • Nodejs读取文件时相对路径的正确写法(使用fs模块)

    Nodejs读取文件时相对路径的正确写法(使用fs模块)

    本篇文章主要介绍了linux 环境 mysql写入中文报错的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-04-04
  • Nodejs Stream 数据流使用手册

    Nodejs Stream 数据流使用手册

    这篇文章主要介绍了Nodejs Stream 数据流使用手册的相关资料,感兴趣的小伙伴一起学习吧
    2016-04-04
  • 浅谈node模块与npm包管理工具

    浅谈node模块与npm包管理工具

    这篇文章主要介绍了node模块与npm包管理工具,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • node.js爬虫框架node-crawler初体验

    node.js爬虫框架node-crawler初体验

    这篇文章主要介绍了node.js爬虫框架node-crawler的相关资料,帮助大家利用node.js进行爬虫,感兴趣的朋友可以了解下
    2020-10-10
  • npm包发布和删除的超详细教程

    npm包发布和删除的超详细教程

    npm是JavaScript的包管理器,也是世界上最大的软件注册中心,下面这篇文章主要给大家介绍了关于npm包发布和删除的超详细教程,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02

最新评论