在 nodejs|npm outdated 中将依赖项更新为最新包的教程

474 阅读3分钟

在我之前的nodejs应用中,我需要将所有的依赖关系转换为最新版本。这篇博客讲述了如何将所有的软件包升级到最新版本。

这篇文章解决了开发者在nodejs更新最新包时的问题

  • 如何更新package.json中的每个依赖关系
  • 如何手动或自动更新所有软件包
  • 如何更新全局软件包到最新版本
  • 更新依赖性和devdependencies

Nodejs项目的所有依赖性都保存在package.json文件中

  "dependencies": {
   "package1:"version",
  },
    "devDependencies": {
       "package2:"version",

  },

所以,我们要用以下命令来更新依赖关系和devDependencies部分

首先检查哪个包有旧版本?

任何需要升级到最新版本的项目都有两件事要做

  • 更新package.json中的最新版本
  • 使用npm install安装软件包,这意味着node_modules更新为最新版本,package-lock.json文件也被更新。

让我们在下一节讨论

Node有内置的命令 "npm outdated "来列出项目中所有的旧版本。

我的项目正在使用Angular和primeng的旧版本。

让我们在根目录下运行该命令

B:\angular-primeng-chart-examples>npm outdated
Package                            Current  Wanted  Latest  Location
@angular/animations                 11.1.0  9.1.13  11.1.0  angular
@angular/cdk                        11.1.0   9.2.4  11.1.0  angular
@angular/common                     11.1.0  9.1.13  11.1.0  angular
@angular/compiler                   11.1.0  9.1.13  11.1.0  angular
@angular/core                       11.1.0  9.1.13  11.1.0  angular
@angular/forms                      11.1.0  9.1.13  11.1.0  angular
@angular/platform-browser           11.1.0  9.1.13  11.1.0  angular
@angular/platform-browser-dynamic   11.1.0  9.1.13  11.1.0  angular
@angular/router                     11.1.0  9.1.13  11.1.0  angular
@fullcalendar/core                   5.5.1   4.4.2   5.5.1  angular
primeicons                           4.1.0   2.0.0   4.1.0  angular
primeng                             11.2.0   9.1.3  11.2.0  angular
tslib                              MISSING  1.14.1   2.1.0  angular
zone.js                             0.11.3  0.10.3  0.11.3  angular

npm outdated会检查以下内容

  • 它检查项目中的每一个包,并在控制台中给出最新版本。然而,这将被更新到package.json。
  • 它给出当前安装的版本和需要升级的最新版本。
  • 还列出了推荐升级的版本。

运行npm更新命令到最新版本是否安全?

是的,所有已安装的软件包或依赖关系都可以安全地升级到想要的版本,但是,不建议使用最新的推荐版本。

npm update命令将软件包更新到package.json中的最新版本。

如何更新单个软件包到最新版本?

npm update package

它将软件包安装到最新版本。

运行下面的命令,以保存和更新最新的软件包

npm update --save package

这意味着,这将更新项目中package.json的最新版本。

当前版本 -
运行后

npm update --save primeng

这将更新package.json中的最新版本

dependencies:{
 "primeng": "11.2.0",
 }

下一步,在node_modules中安装primeng并更新package-lock.json文件。

npm install

有多种方法可以用单个命令更新所有的软件包

首先,npm update命令

npm update

这将检查每个软件包并更新到package.json中的最新版本,但这并不能将devDependencies更新到最新版本。

如何将devDependencies更新到最新版本?

下一步是使用npm install命令来安装。

这样就不需要手动更新了,但是,这样做会破坏应用程序,使用起来不安全。

第二,npm-check-updates工具

使用npm install全局安装npm-check-updates

npm install npm-check-updates -g

接下来是用单个命令来更新软件包

ncu -u

这将更新依赖项和devDependencies到最新版本。

正如我们上面所讨论的,npm outdated给出了一个nodejs项目的本地包。

如果你想检查全局版本,可以使用npm outdated 命令的-g选项。

npm outdated -g

其结果是列出全局软件包的当前版本、想要的版本和最新版本。

接下来,带有-g选项的update命令会更新package.json文件。

npm update -g 

结论

本教程涵盖了多种更新版本的方法

  • npm outdated 列出一个nodejs应用程序的现有本地版本
  • npm outdated -g指定nodejs环境的全局版本
  • npm update or (-g) 更新本地或全局软件包的单个或多个依赖项
  • ncu命令更新最新版本,npm install安装更新的依赖项