npm version

611 阅读2分钟

预备知识

  • 包中都有一个package.json文件,其中的version是本次的版本号。
  • version字段是这样一个结构: ‘0.0.1’,是有三位的版本号。分别是对应的version里面的:major, minor, patch
    也就是说当发布大版本的时候会升级为 1.0.0,小版本是0.1.0,一些小修复是0.0.2

如下图所示

image.png

package.json初始化,可以看到文件里面的version为1.0.0

image.png

下面来分别说明一下npm version的子命令

npm version major命令

分两种情况

  • 没有预发布号,则直接升级一位大号,其他位都置为0。例如package.json中的version为1.2.3,则执行npm version major命令后,version会变为2.0.0
  • 如果有预发布版本号:
    • 次版本号和补丁版本号都为0,则不升级主版本,而将预发布号删掉。即2.0.0-1变成2.0.0。
    • 次版本号和补丁版本号有任意一个不是0,那边会升级一位主版本号,其他位都置为0,清空预发布号。即 2.0.1-0变成3.0.0。
  • 如图所示:

image.png


image.png

npm version minor命令

分两种情况

  • 如果没有预发布号,则次版本号加1,补丁版本号置0
  • 如果有预发布号:
    • 如果补丁版本号为0,则将预发布版本号去掉,不升级次版本号
    • 如果补丁版本号不为0,则执行命令后,补丁版本号置0,预发布版本号去掉,次版本号加
  • 如图所示

image.png


image.png


image.png

npm version patch命令

  • 如果没有预发布号:将补丁版本号加1
  • 如果有预发布号:去掉预发布号,其他不变
  • 如图所示:

image.png


image.png

npm version premajor

  • 将主版本号加1,次版本和补丁版版本号置0,同时增加预发布号0
  • 如图所示

image.png

npm version preminor

  • 将次版本号加1,补丁版本号置0,同时增加预发布号0
  • 如图所示

image.png

npm version prepatch

  • 将补丁版本号加1,同时增加预发布号0
  • 如图所示

image.png

npm version prerelease

  • 如果没有预发布号:增加补丁版本号,增加预发布号为0
  • 如果有预发布号,则升级预发布号
  • 如图所示

image.png


image.png

参考链接

www.jianshu.com/p/5565536a1…