npm包發佈後能夠對包進行廢棄或刪除操做,廢棄和刪除的區別在於:node
不管是廢棄仍是刪除,都包含兩個層面:npm
廢棄緣由:bash
語法:npm deprecate <pkg>[@<version>] <message>
babel
咱們以yuyy-test-pkg爲例:post
npm deprecate yuyy-test-pkg@1.1.0 'test deprecate'
複製代碼
執行後咱們用npm view yuyy-test-pkg versions
查看版本:spa
切換到test-my-pkg目錄下,執行:3d
npm i yuyy-test-pkg@1.1.0
複製代碼
運行結果:code
在test-my-pkg目錄下cdn
node index.js
複製代碼
結果:blog
因此,廢棄的包除了安裝時會有警示,並不影響使用。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
複製代碼
結果:
d.png](/img/bVblvuI)而後再從新安裝:
npm i yuyy-test-pkg @yuyy/babel
複製代碼
結果:
已經刪除的包沒法再安裝。
至此,咱們完成npm包的整個生命週期的演示過程,你們能夠爲npm貢獻本身的包了,在開源方面又多了一條很重要的途徑。
最後,我想說,做爲一個開發者,咱們每一個人有責任和義務維護每個社區的純淨,因此在發佈npm包的時候應該儘可能精益求精,避免發一些沒有價值的東西給其餘人形成困擾。構建美好生態,人人有責。
相關文章: