npm升級全部可更新包

使用npm管理node的包,可使用npm update <name>對單個包升級,對於npm的版本大於 2.6.1,可使用命令:node

npm install -ggit

升級全局的本地包。github

對於版本小於2.6.1的一個一個包的升級實在是太麻煩,就想找到一個升級全部本地包的方法,找到兩個比較好的方式:shell腳本npm-ckeckshell

shell腳本

使用shell腳本升級npm包,首先所在找到須要升級的包和版本號,再使用npm install完成升級。
npm -g是管理本地全局包的命令。經過npm -g outdated能夠查看那些包有更新:npm

npm -g outdated app

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還可使用目錄的方式展現,再從中提取出包名和版本號。requirejs

npm -g outdated --parseable --depth=0ui

/usr/local/lib/node_modules/appium:appium@1.5.3:appium@1.5.2:appium@1.5.3
...

在經過cut命令就能夠獲得最後要升級版本號和包名:spa

npm -g outdated --parseable --depth=0 | cut -d: -f2eslint

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

CA5E1D6E-93B8-40CA-B190-273B87364C8C.png

經過上下鍵能夠移動光標,使用空格鍵能夠選擇須要處理的包,回車直接進行處理。
選擇npm@3.10.2包升級到3.10.3

? Choose which packages to update. npm@3.10.3

$ npm install --global npm@3.10.3 --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包。

參考:https://gist.github.com/othiym23/4ac31155da23962afd0e

相關文章
相關標籤/搜索