预备知识
- 包中都有一个package.json文件,其中的version是本次的版本号。
- version字段是这样一个结构: ‘0.0.1’,是有三位的版本号。分别是对应的version里面的:
major,minor,patch。
也就是说当发布大版本的时候会升级为1.0.0,小版本是0.1.0,一些小修复是0.0.2
如下图所示
package.json初始化,可以看到文件里面的version为1.0.0
下面来分别说明一下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。
- 如图所示:
npm version minor命令
分两种情况
- 如果没有预发布号,则次版本号加1,补丁版本号置0
- 如果有预发布号:
- 如果补丁版本号为0,则将预发布版本号去掉,不升级次版本号
- 如果补丁版本号不为0,则执行命令后,补丁版本号置0,预发布版本号去掉,次版本号加
- 如图所示
npm version patch命令
- 如果没有预发布号:将补丁版本号加1
- 如果有预发布号:去掉预发布号,其他不变
- 如图所示:
npm version premajor
- 将主版本号加1,次版本和补丁版版本号置0,同时增加预发布号0
- 如图所示
npm version preminor
- 将次版本号加1,补丁版本号置0,同时增加预发布号0
- 如图所示
npm version prepatch
- 将补丁版本号加1,同时增加预发布号0
- 如图所示
npm version prerelease
- 如果没有预发布号:增加补丁版本号,增加预发布号为0
- 如果有预发布号,则升级预发布号
- 如图所示