在这篇博文中,我们将学习npm-check-updates npm包来更新package.json和bower.json中的依赖项。
npm check updates包用于检查node js项目package.json中的所有依赖项,并将依赖项更新为最新版本。这个包通过更新以下配置文件来工作
这个库解决了NodeJS应用程序的以下所有问题
- 如何将package.json中的所有依赖项更新到最新版本?
- 如何将package.json中的devDependencies更新到最新版本?
- 将bower.json中的依赖关系更新到最新版本
- npm检查并更新软件包,如果需要的话
node 和 命令应该在安装npm-check-updates`之前就可以工作。找到已安装的node和npm版本,检查是否已安装npm
B:\cloudhadoop>node --version
v14.17.0
B:\cloudhadoop>npm --version
7.11.1
请使用npm install命令全局安装npm-check-updates。
npm i -g npm-check-updates
一旦安装,ncu 命令就可用了。
B:\cloudhadoop>ncu --version
2.14.1
要更新任何软件包到最新版本,首先,你需要检查过时的旧版本。请发出npm outdated 命令。
下面的例子是检查angular package.json中过期的依赖项。
B:\Workspace\blog\angularapp>npm outdated
Package Current Wanted Latest Location
@angular-devkit/build-angular 0.7.5 0.7.5 0.8.5 angularapp
@angular/cli 6.1.5 6.1.5 6.2.5 angularapp
@types/node 8.9.5 8.9.5 10.12.0 angularapp
codelyzer 4.2.1 4.2.1 4.5.0 angularapp
jasmine-core 2.99.1 2.99.1 3.2.1 angularapp
karma 1.7.1 1.7.1 3.0.0 angularapp
karma-jasmine-html-reporter 0.2.2 0.2.2 1.3.1 angularapp
protractor 5.3.2 5.3.2 5.4.1 angularapp
ts-node 5.0.1 5.0.1 7.0.1 angularapp
tslint 5.9.1 5.9.1 5.11.0 angularapp
typescript 2.7.2 2.7.2 3.1.3 angularapp
同样可以用npm命令来实现
这列出了当前版本和直接依赖的版本。
B:\myblogs\cloudhadoop>npm list webpack
cloudhadoop@1.0.0 B:\myblogs\cloudhadoop
+-- babel-loader@8.1.0
| `-- webpack@4.42.1 deduped
+-- compression-webpack-plugin@3.1.0
| `-- webpack@4.42.1 deduped
+-- webpack@4.42.1
| `-- terser-webpack-plugin@1.4.5
| `-- webpack@4.42.1 deduped
`-- workbox-webpack-plugin@5.1.2
`-- webpack@4.42.1 deduped
如何检查依赖关系并更新到最新版本?
使用ncu ,你可以列出所有包的当前版本和最新版本的package.json 。
B:\Workspace\blog\angularapp>ncu
Using B:\Workspace\blog\angularapp\package.json
[..................] \ :
@angular-devkit/build-angular ~0.7.0 → ~0.8.5
@angular/cli ~6.1.1 → ~6.2.5
@types/node ~8.9.4 → ~10.12.0
codelyzer ~4.2.1 → ~4.5.0
jasmine-core ~2.99.1 → ~3.2.1
karma ~1.7.1 → ~3.0.0
karma-jasmine-html-reporter ^0.2.2 → ^1.3.1
protractor ~5.3.0 → ~5.4.1
ts-node ~5.0.1 → ~7.0.1
tslint ~5.9.1 → ~5.11.0
typescript ~2.7.2 → ~3.1.3
Run ncu with -u to upgrade package.json
这只是在控制台中显示版本,并没有更新到package.json。接下来,将package.json中的每个依赖关系更新为最新版本
这里有一个单一的命令来更新所有软件包的当前版本到最新版本。
B:\Workspace\blog\angularapp>ncu -u
Using B:\Workspace\blog\angularapp\package.json
[..................] \ :
@angular-devkit/build-angular ~0.7.0 → ~0.8.5
@angular/cli ~6.1.1 → ~6.2.5
@types/node ~8.9.4 → ~10.12.0
codelyzer ~4.2.1 → ~4.5.0
jasmine-core ~2.99.1 → ~3.2.1
karma ~1.7.1 → ~3.0.0
karma-jasmine-html-reporter ^0.2.2 → ^1.3.1
protractor ~5.3.0 → ~5.4.1
ts-node ~5.0.1 → ~7.0.1
tslint ~5.9.1 → ~5.11.0
typescript ~2.7.2 → ~3.1.3
Upgraded B:\Workspace\blog\angularapp\package.json
这将更新依赖的版本到package.json中的最新版本。这里是更新的package.json文件
{
"name": "angularapp",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular/animations": "^6.1.0",
"@angular/common": "^6.1.0",
"@angular/compiler": "^6.1.0",
"@angular/core": "^6.1.0",
"@angular/forms": "^6.1.0",
"@angular/http": "^6.1.0",
"@angular/platform-browser": "^6.1.0",
"@angular/platform-browser-dynamic": "^6.1.0",
"@angular/router": "^6.1.0",
"angular2-uuid": "^1.1.1",
"core-js": "^2.5.4",
"rxjs": "^6.0.0",
"zone.js": "~0.8.26"
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.8.5",
"@angular/cli": "~6.2.5",
"@angular/compiler-cli": "^6.1.0",
"@angular/language-service": "^6.1.0",
"@types/jasmine": "~2.8.6",
"@types/jasminewd2": "~2.0.3",
"@types/node": "~10.12.0",
"codelyzer": "~4.5.0",
"jasmine-core": "~3.2.1",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~3.0.0",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~2.0.0",
"karma-jasmine": "~1.1.1",
"karma-jasmine-html-reporter": "^1.3.1",
"protractor": "~5.4.1",
"ts-node": "~7.0.1",
"tslint": "~5.11.0",
"typescript": "~3.1.3"
}
}
如何用npm命令将每个软件包更新到最新版本?
npm命令提供了一个单一的软件包到最新的版本
npm update --save @angular/cli
下面运行并更新package.json中的所有软件包
像package.json包的更新一样,我们可以使用带有选项的ncu命令。
npm update和npm-check-updates命令的区别?
npm-check-update检查package.json中的旧版本并更新到最新版本,接下来你必须使用npm install 命令安装最新的包。
npm update命令更新软件包中的最新版本+安装软件包