内功修炼

npm之version和tag

2018-05-31  本文已影响48人  寂寞的原子

上一篇 说到了 NPM 开发和发布包的流程,那么问题来了:

一不小心把测试版发布成了正式版,我该怎么办?只能跑路了吗?

虽然自从leftpad事件之后,NPM取消了npm unpublishnpm publish -f操作,但是我们错误地把测试版发布成正式版之后,不要惊慌,要稳住,因为我们能赢。

概念

首先介绍几个概念:

总结一下

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
    

老板再也不用担心我搞出线上故障了。

上一篇 下一篇

猜你喜欢

热点阅读