一文詳解npm如何更新項(xiàng)目最新依賴包
NPM 是什么?
Node 軟件包管理器(NPM)提供了各種功能來(lái)幫助你安裝和維護(hù)項(xiàng)目的依賴關(guān)系。
由于錯(cuò)誤修復(fù)、新功能和其他更新,依賴關(guān)系可能會(huì)隨著時(shí)間的推移而變得過(guò)時(shí)。你的項(xiàng)目依賴越多,就越難跟上這些更新。
老舊的軟件包會(huì)對(duì)安全構(gòu)成威脅,并會(huì)對(duì)性能產(chǎn)生負(fù)面影響。最新的軟件包可以防止出現(xiàn)漏洞。這意味著定期檢查和更新依賴是很重要的。
如何保持依賴是最新的
現(xiàn)在,你可以逐一查看 package.json
中的每一個(gè)單獨(dú)的包,改變版本,然后運(yùn)行 npm install <package>@latest
來(lái)獲得最新版本。但這并不是最有效的方法。
想象一下,如果你有 20 個(gè)或更多的包,可以使用版本升級(jí)。相反,你應(yīng)該制定一個(gè)工作流程,在過(guò)期的依賴關(guān)系數(shù)量增加和升級(jí)變得越來(lái)越難之前,定期檢查新版本。
下面是一個(gè)我保持更新的工作流程:首先,發(fā)現(xiàn)哪些軟件包需要更新,以及版本落后的程度。接下來(lái),選擇單獨(dú)或一起批量更新軟件包。始終對(duì)更新進(jìn)行測(cè)試,以確保沒(méi)有發(fā)生破壞性變化。
我更喜歡單獨(dú)執(zhí)行主要版本的更新。對(duì)于主要的更新,你很可能會(huì)遇到破壞性的變化。與許多包相比,撤銷或處理與一個(gè)包有關(guān)的代碼變化要容易得多。
在這篇文章中,我將詳細(xì)介紹檢查和升級(jí)依賴關(guān)系的方法。
怎樣使用 npm outdated 命令
npm outdated
該命令將檢查每個(gè)已安裝的依賴關(guān)系,并將當(dāng)前版本與 npm registry 中的最新版本進(jìn)行比較。它在終端打印出一個(gè)表格,概述了可用的版本。
它是內(nèi)置在 NPM 中的,所以不需要下載額外的軟件包。npm outdated
是一個(gè)很好的開(kāi)始,可以了解所需的依賴性更新的數(shù)量。
- Current 是當(dāng)前安裝的版本。
- Wanted 是根據(jù)semver 范圍內(nèi)的軟件包的最大版本。
- Latest 是在 npm registry 中被標(biāo)記為最新的軟件包版本。
使用這種方法,要安裝每個(gè)軟件包的更新,你只需要運(yùn)行:
npm update
請(qǐng)記住,使用 npm update
它永遠(yuǎn)不會(huì)更新到一個(gè)主要的(major),具有破壞性變化的版本。它更新 package.json
和 package-lock.json
中的依賴關(guān)系。它將使用想要的版本。
為了獲得 "最新 "的版本,在單個(gè)安裝中附加 @latest
,例如 npm install react@latest
。
怎樣使用 npm-check-updates
對(duì)于高級(jí)和可定制的升級(jí)體驗(yàn),我推薦 npm-check-updates
。這個(gè)包可以做所有 npm oudated
和 npm upgrade
能做的事情,并增加了一些自定義選項(xiàng)。不過(guò),它確實(shí)需要安裝一個(gè)包。
要開(kāi)始使用,請(qǐng)?jiān)谌职惭b npm-check-updates
軟件包:
npm install -g npm-check-updates
然后,運(yùn)行 ncu
來(lái)顯示要升級(jí)的軟件包。與 npm outdated
類似,它不會(huì)產(chǎn)生任何變化。
ncu Checking package.json [====================] 12/12 100% @testing-library/user-event ^13.5.0 → ^14.2.1 @types/jest ^27.5.2 → ^28.1.4 @types/node ^16.11.42 → ^18.0.1 Run ncu -u to upgrade package.json
要升級(jí)依賴性,你只需要運(yùn)行:
ncu --upgrade // or ncu -u
- Red (顯示紅色) = major (主版本,或者說(shuō)是大版本)
- Cyan (顯示青色) = minor(次要版本)
- Green(顯示綠色) = patch (補(bǔ)丁版本)
這個(gè)方法只更新 package.json
文件中的依賴關(guān)系,并且會(huì)選擇最新的版本,即使它包括一個(gè)破壞性的變化。使用這種方法,npm install
不會(huì)自動(dòng)運(yùn)行,所以一定要在之后運(yùn)行它來(lái)更新 package-lock.json
。
要選擇你喜歡的版本類型,運(yùn)行 ncu --target [patch, minor, latest, newest, greatest]
。
如何使用 npm-check-updates 互動(dòng)模式
ncu --interactive // or ncu -i
互動(dòng)模式允許你選擇特定的軟件包進(jìn)行更新。默認(rèn)情況下,所有軟件包都被選中。
向下瀏覽每一個(gè)軟件包,用空格來(lái)取消選擇,當(dāng)你準(zhǔn)備好升級(jí)所有選擇的軟件包時(shí),回車鍵(enter)確定。
有幾種方法可以提升交互式 npm-check-updates 的體驗(yàn)。
ncu --interactive --format group
這個(gè)命令將軟件包分組并組織成 主版本(major)、次要(minor)和補(bǔ)丁(patch)版本。
npm-check-updates 提供了其他有用的工具,如 doctor mode,它可以安裝升級(jí)并運(yùn)行測(cè)試以檢查破壞性變化。
總結(jié)
養(yǎng)成定期更新你的依賴關(guān)系的習(xí)慣,將有助于你的應(yīng)用程序的安全性和性能。
npm oudated
和 npm-check-updates
都是有用的工具,可以檢查那些可以使用版本升級(jí)的軟件包。
https://www.freecodecamp.org/chinese/news/how-to-update-npm-dependencies/
到此這篇關(guān)于npm如何更新項(xiàng)目最新依賴包的文章就介紹到這了,更多相關(guān)npm更新項(xiàng)目最新依賴包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
參考EventEmitter實(shí)現(xiàn)完整訂閱發(fā)布功能函數(shù)
這篇文章主要為大家介紹了參考EventEmitter實(shí)現(xiàn)完整訂閱發(fā)布功能函數(shù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02Nodejs讀取文件時(shí)相對(duì)路徑的正確寫法(使用fs模塊)
本篇文章主要介紹了linux 環(huán)境 mysql寫入中文報(bào)錯(cuò)的相關(guān)知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-04-04Nodejs Stream 數(shù)據(jù)流使用手冊(cè)
這篇文章主要介紹了Nodejs Stream 數(shù)據(jù)流使用手冊(cè)的相關(guān)資料,感興趣的小伙伴一起學(xué)習(xí)吧2016-04-04node.js爬蟲框架node-crawler初體驗(yàn)
這篇文章主要介紹了node.js爬蟲框架node-crawler的相關(guān)資料,幫助大家利用node.js進(jìn)行爬蟲,感興趣的朋友可以了解下2020-10-10