npm 有一個指令可以偵測套件是否有出新的可以更新,我故意裝了 jquery@2 以及 bootstrap@4。
npm ls
test@1.0.0 D:\node_test
├── bootstrap@4.6.1
└── jquery@2.2.4
我們來執行更新檢查:
npm outdated
Package Current Wanted Latest Location Depended by
bootstrap 4.6.1 4.6.1 5.1.3 node_modules/bootstrap node_test
jquery 2.2.4 2.2.4 3.6.0 node_modules/jquery node_test
bootstrap 跟 jquery 都有新版本可以更新,更新指令如下:
npm install jquery@latest bootstrap@latest
如果之前就有加入 package.json
的話則不用指定 --save
或是 --save-dev
,一兩個套件可能還好,假設今天有十幾個要一次更新就累了,而 npm 本身沒有提供全部更新到最新版的指令,npm update
跑的是在 package.json
的板號下的最新版,所以跨了版號就不執行了。
npmjs 當然有套件可以輔助這件事,像是 npm-check,但我們也可以透過 shell script 自己處理,以下示範 awk 以及 cut 的用法。
# 指令一,利用 awk
npm outdated | sed 1d | awk -F ' ' '{print sprintf("%s@latest", $1)}' | xargs npm install
npm outdated | sed 1d | awk -F ' ' '{print sprintf("%s@%s", $1, $4)}' | xargs npm install
# 指令二,利用 cut
npm outdated | sed 1d | cut -d' ' -f1 | xargs -I {} echo '{}@latest' | xargs npm install
沒有留言:
張貼留言