使用npm管理node的包,可以使用 npm update <name>
對單個包升級,但是沒有命令能夠把當前所有包都升級。
一個一個包的升級實在是太麻煩,就想找到一個升級所有本地包的方法: shell腳本
和 npm-ckeck
shell腳本
使用shell腳本升級npm包,首先所在找到需要升級的包和版本號,再使用 npm install
完成升級。
npm -g
是管理本地全局包的命令。通過 npm
-g outdated
可以查看那些包有更新:
npm -g outdated
Package Current Wanted Latest Location
appium 1.5.2 1.5.3 1.5.3
bower 1.7.0 1.7.9 1.7.9
cordova 5.4.1 6.2.0 6.2.0
eslint 2.13.0 3.0.0 3.0.0
fsevents 1.0.8 1.0.12 1.0.12
grommet 0.4.1 0.6.9 0.6.9
requirejs 2.1.22 2.2.0 2.2.0
這裏列出來了,當前版本,和最後的版本,只需要得到所有需要升級的包名和版本號就可以使用 npm -g install <name>
直接升級了。
npm -g outdated
還可以使用目錄的方式展示,再從中提取出包名和版本號。
npm -g outdated --parseable --depth=0
/usr/local/lib/node_modules/appium:appium@1.5.3:appium@1.5.2:appium@1.5.3
...
在通過 cut
命令就可以得到最後要升級版本號和包名:
npm -g outdated --parseable --depth=0 | cut -d: -f2
appium@1.5.3
.....
完整的腳本:
#!/bin/sh
set -e
#set -x
for package in $(npm -g outdated --parseable --depth=0 | cut -d: -f2)
do
npm -g install "$package"
done
腳本下載地址: https://github.com/jjz/script/blob/master/npm-upgrade.sh
npm-check
npm-check 是用來檢查npm依賴包是否有更新,錯誤以及不在使用的,我們也可以使用npm-check進行包的更新。
安裝npm-check:
npm install -g npm-check
檢查npm包的狀態:
npm-check -u -g
通過上下鍵可以移動光標,使用空格鍵可以選擇需要處理的包,回車直接進行處理。
選擇 [email protected]
包升級到 3.10.3
:
? Choose which packages to update. npm@3.10.3
$ npm install --global [email protected] --color=always
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
/usr/local/lib
└─┬ npm@3.10.3
├── aproba@1.0.4
├── has-unicode@2.0.1
└── read-package-tree@5.1.5
[npm-check] Update complete!
[npm-check] npm@3.10.3
[npm-check] You should re-run your tests to make sure everything works with the updates.
通過以上兩種方式可以更便利的管理本地的 npm
包。
轉載於: