天天看點

npm更新package.json依賴包

使用npm管理node的包,可以使用

npm update <name>

對單個包更新,對于npm的版本大于

2.6.1

,可以使用指令:

npm install -g

更新全局的本地包。

對于版本小于

2.6.1

的一個一個包的更新實在是太麻煩,就想找到一個更新所有本地包的方法,找到兩個比較好的方式:

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:[email protected]:[email protected]:[email protected].5.3
...
           

在通過

cut

指令就可以得到最後要更新版本号和包名:

npm -g outdated --parseable --depth=0 | cut -d: -f2
[email protected]
.....
           

完整的腳本:

#!/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
npm更新package.json依賴包

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

通過上下鍵可以移動光标,使用空格鍵可以選擇需要處理的包,回車直接進行處理。

選擇

[email protected]

包更新到

3.10.3

? Choose which packages to update. [email protected]

$ npm install --global [email protected] --color=always
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
/usr/local/lib
└─┬ [email protected]
  ├── [email protected]
  ├── [email protected]
  └── [email protected]

[npm-check] Update complete!
[npm-check] [email protected]
[npm-check] You should re-run your tests to make sure everything works with the updates.
           

通過以上兩種方式可以更便利的管理本地的

npm

包。