npm升級所有可更新包

使用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 包。

轉載於:https://segmentfault.com/a/1190000005857342

發佈了10 篇原創文章 · 獲贊 9 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章