在我之前的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安装更新的依赖项