最近專案模組遷移到npm上進行管理,因為npm倉庫是線上線下公用的,所以模組中新開發的功能怎麼進行測試?如果直接npm publish
,會導致影響線上環境,然而測試程式碼影響線上程式碼是我們最不想看到的。經過一番調查,發現npm官方已經考慮到大家的這種情況了,可以通過npm中的tag
對這些包進行管理。
開始之前,簡單介紹一下tag
和 版本號
的區別:
版本號
:我們常用的版本號命名方式為1.1.1
,即Semver規範
:semver.org/,不同位置的數字代表不同版本,但是這樣就需要人工記憶哪個版本是測試的,哪個版本是線上的,很容易出錯dist-tag
:不同於上面的版本號,dist-tag(Distribution tags) 提供了一個可讀性更高的分發標籤。例如將包分發為dev
、bugfix
等,然後下載時指定tag
即可,如:npm install my-package@dev
如何使用dist-tag
?
官方文件:docs.npmjs.com/cli/dist-ta…
npm dist-tag add <pkg>@<version> [<tag>] # 為已釋出的某個版本號新增分發tag
npm dist-tag rm <pkg> <tag> # 刪除某個版本的tag
npm dist-tag ls <pkg> # 顯示pkg的所有tag
複製程式碼
在釋出的時候可以使用npm publish --tag <tag>
在測試環境安裝的時候就可以指定tag安裝,如
npm install my-package@dev
等測試通過之後,將版本號的tag改為latest