npm包發佈後可以對包進行廢棄或刪除操作,廢棄和刪除的區別在於:
- 廢棄不會將包或版本從npm倉庫刪除,仍然可以繼續下載安裝,並在安裝的時候會有警示
- 刪除會將包從npm徹底刪除,無法被下載安裝
無論是廢棄還是刪除,都包含兩個層面:
- 版本的廢棄/刪除
- 包的廢棄/刪除
一、廢棄
廢棄原因:
- 版本:鼓勵用戶更新最新版本
- 包:此包不再有維護的價值
第一步:廢棄指定版本
語法:npm deprecate <pkg>[@<version>] <message>
我們以yuyy-test-pkg爲例:
npm deprecated [email protected] 'test deprecate'
執行後我們用npm view yuyy-test-pkg versions
查看版本:
記錄的版本號並無變化。
第二步:安裝廢棄版本
切換到test-my-pkg目錄下,執行:
npm i [email protected]
運行結果:
第三步:運行index.js
在test-my-pkg目錄下
node index.js
結果:
廢棄的包除了安裝時會有警示,並不影響使用。
二、刪除
npm不鼓勵任何形式的刪除,主要因爲我們發佈的包可能已經被其他人引用,如果我們刪除了此包,其他人在重新安裝含有我們包的依賴的工程時,出現找不到包問題。
基於此,npm做了相關的刪除限制:
刪除的版本24小時後方可重發!
包發佈72小時之內纔可刪除!
第一步:刪除發佈的包
我們之前在《npm發佈包教程(二):發佈包》發佈的包僅爲演示所用,爲保持npm倉庫的純淨,我們都刪除掉:
npm unpublish yuyy-test-pkg --force
npm unpublish @yuyy/babel --force
第二步:去官網查找
第二步
切換到test-my-pkg目錄下,先將兩個包卸載:
npm rm yuyy-test-pkg @yuyy/babel
結果:
然後再重新安裝:
npm i yuyy-test-pkg @yuyy/babel
結果:
已經刪除的包無法再安裝。
至此,我們完成npm包的整個生命週期的演示過程,大家可以開源的道路上又多了一條很重要的道路。不過,我覺得作爲一個開發者,我們有責任和義務維護每一個社區的純淨,所以在發佈npm包的時候應該儘量精益求精。
相關文章:
1.《npm發佈包教程(一):從npm說起》
2.《npm發佈包教程(二):發佈包》
3.《npm發佈包教程(三):安裝發佈包》
4.《npm發佈包教程(四):迭代》
5.《npm發佈包教程(五):廢棄/刪除》