npm模組管理-區分測試包和穩定包

Alongite發表於2018-11-26

最近專案模組遷移到npm上進行管理,因為npm倉庫是線上線下公用的,所以模組中新開發的功能怎麼進行測試?如果直接npm publish,會導致影響線上環境,然而測試程式碼影響線上程式碼是我們最不想看到的。經過一番調查,發現npm官方已經考慮到大家的這種情況了,可以通過npm中的tag對這些包進行管理。

開始之前,簡單介紹一下tag版本號的區別:

  • 版本號:我們常用的版本號命名方式為1.1.1,即Semver規範:semver.org/,不同位置的數字代表不同版本,但是這樣就需要人工記憶哪個版本是測試的,哪個版本是線上的,很容易出錯
  • dist-tag:不同於上面的版本號,dist-tag(Distribution tags) 提供了一個可讀性更高的分發標籤。例如將包分發為devbugfix等,然後下載時指定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

相關文章