npm @next tag alpha


雖然自從leftpad事件之后,NPM取消了npm unpublishnpm publish -f操作,但是我們錯誤地把測試版發布成正式版之后,不要驚慌,要穩住,因為我們能贏。

概念

首先介紹幾個概念:

  • version

    作為開發者,版本號肯定不陌生,發布到npm后,每一個版本號都對應了其資源文件,而且是不可修改的。npm中的版本號類似於git中的tag。

  • tag

    npm中也有個tag的概念,真是混亂。一般情況下,我們可以不指定tag,這時默認就會用latest這個tag,所有發布或者安裝都是最新的正式版。而指定tag之后,我們可以在這個tag上發布一個更新的版本,用戶安裝的時候如果也指定這個tag,則會安裝這個tag下的最新版。因此,npm中的tag類似於git中的branch。

總結一下

version一旦發布,是不可變的;
而tag更像一個渠道,只要用戶選擇了這個渠道,就可以一直更新這個渠道的最新版。

也因此,version和tag是相互獨立的。

切換tag

回到我們的問題,如果不小心把1.0.0-alpha.1直接npm publish了,我們該怎么辦?

命令一:npm dist-tag ls

查看當前的tag和對應的version。

通過這個命令,我們可以得到這樣的結果:

latest: 1.0.0 next: 1.0.0-alpha.0 

如果我們不小心發布了一個1.0.0-alpha.1latest,那么我們會得到:

latest: 1.0.0-alpha.1 next: 1.0.0-alpha.0 

這個時候我們只要切一下tag就可以挽回局面了。

命令二:npm view my-package versions

查看my-package發布過的所有版本號。

通過這個命令可以得到一個數組:

[ '0.1.0', '1.0.0', '1.0.0-alpha.0', '1.0.0-alpha.1' ] 

命令三:npm dist-tag add my-package@version tag

給my-package設置tag,對應到版本version。

如:

  1. 把原來的1.0.0設置成最新的正式版

    $ npm dist-tag add my-package@1.0.0 latest
    
  2. 把1.0.0-alpha.1更新到最新的測試版

    $ npm dist-tag add my-package@1.0.0-alpha.1 next
    

老板再也不用擔心我搞出線上故障了。



作者:寂寞的原子
鏈接:https://www.jianshu.com/p/91902bae5572
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM