https://blog.csdn.net/weixin_40817115/article/details/90384398
npm version
- major: 主版本号
- premajor: 预备主版本
- minor: 次版本号
- preminor: 预备次版本
- patch: 修订号
- prepatch: 预备修订版
- prerelease: 预发布版本
各命令操作明细表
| 名称 | 命令 | 含义 | 追加说明 | 特别注意 | | —- | —- | —- | —- | —- | | help | npm version —help | version命令概览 | | | | version | npm version | 查看当前包的详细版本信息 | | | | prerelease | npm version prerelease | package.json 中的版本号1.0.0变为 1.0.1-0 | 再次使用npm version prerelease
prerelease增版本号+1,变成1.0.1-1 | 当执行npm version prerelease时,如果没有预发布号,则增加minor,同时prerelease 设为0;
如果有prerelease, 则prerelease 增加1。
所以第一次搞预发布版本,得先有预发布号 | | prepatch | npm version prepatch | package.json 中的版本号1.0.1-1变为 1.0.2-0 | prepatch - 直接升级小号,增加预发布号为0。 | 如果没有prerelease,则自动增加prerelease版本号为0
如npm version prepatch 版本号3.0.0 变为 3.0.1-0 | | preminor | npm version preminor | package.json 中的版本号1.0.2-0变为 1.1.0-0 | preminor - 直接升级中号,小号置为0,增加预发布号为0 | 如果没有prerelease,则自动增加prerelease版本号为0
如npm version premajor 版本号1.1.0 变为 2.0.0-0 | | premajor | npm version premajor | package.json 中的版本号1.1.0-0变为 2.0.0-0 | premajor - 直接升级大号,中号、小号置为0,增加预发布号为0。 | 如果没有prerelease,则自动增加prerelease版本号为0
如npm version premajor 版本号2.1.0 变为 3.0.0-0 | | patch | npm version patch | package.json 中的版本号2.0.0-0变为 2.0.0 | 再次执行npm version patch
package.json 中的版本号2.0.0变为 2.0.1 |
- patch:
- - 如果有prerelease ,则去掉prerelease ,其他保持不变
- - 如果没有prerelease ,则升级patch
| | minor | npm version minor | package.json 中的版本号3.0.1-0变为 3.1.0 | 再次执行npm version minor
package.json 中的版本号3.1.0变为 3.2.0 |
- minor:
- - 如果有prerelease ,则去掉prerelease ,其他保持不变 - 如果没有prerelease,直接升级minor, 同时patch设置为0
| | major | npm version major | package.json 中的版本号3.1.0-1变为 4.0.0 | 再次执行npm version minor
package.json 中的版本号4.0.0变为 5.0.0 |
- major
- - 如果没有prelease,则直接升级major,其他位都置为0; - 如果有预发布号: minor和patch都为0,则将prerelease 去掉,升级major。这里升不升级主版本号?待测试
- 如果有预发布号:且minor和patch有任意一个不是0,则升级一位major,其他位都置为0,并去掉prerelease。
- 如:5.1.0-0 —>6.0.0
|
参考:
npm-version
Git tag 的使用与 npm version
https://github.com/npm/node-semver
发包跳过git commit hooks
npm version prerelease --message "[release] prerelease" --commit-hooks=false