Skip to content

npm版本管理

首先我们都知道在package.json中有一个版本号verison字段,比如0.0.1 ,三个数字分别表示主版本major、此版本minor、补丁版本patch。发布大版本会升级为1.0.0,小版本是0.1.0,一些小修复是0.0.2。

如果执行了npm version prepatch 版本号会从1.1.1变成1.1.2-0(预发布号)

我们称版本号1.1.2-0的4位分别是 大号.中号.小号-预发布号

如果是小项目可能这个版本号都没变过,但是当我们开发自己的组件库时就很有必要修改版本号了。最简单的方式当然是手动去修改version字段,但是这样做一是太low,而是版本号可能不连贯,不利于维护,所以需要使用npm version来更新。

version功能
major主版本
如果没有预发布号,则直接升级一位大号,其他位置都为0。即2.0.1直接变成3.0.0
如果有预发布号:
如果中号和小号都为0,则不升级大号,直接将预发布号去掉。即2.0.0-1变成2.0.0
如果中号小号任意一个不为空,则会升级一位大号,其他位置都为0,清空预发布号。即2.0.1-1变成3.0.0
minor次版本
如果没有预发布号,则直接升级一位中号,大号不变,小号变为0。即2.0.1变成2.1.0
如果有预发布号:
如果小号为0,则不升级中号,清空预发布号,即2.0.0-1变成2.0.0
如果小号不为0,直接升级中号,小号变为0,清空预发布号,即2.0.1-1变成2.1.0
patch补丁版本
如果没有预发布号,直接升级小号,即2.0.1变成2.0.2
如果有预发布号:
清空预发布嗯号,其他不变。即2.0.1-1变成2.0.1


premajor直接升级大号,中号小号变成0,增加预发布号,即2.0.1变成3.0.0-0
preminor直接升级中号,小号变为0,增加预发布好,即2.0.1变成2.1.0-0
prepatch直接升级小号,增加预发布号,即2.0.1变成2.0.2-0
prerelease如果没有预发布号,直接升级小号,增加预发布号,即2.0.1变成2.0.2-0
如果有预发布号,则升级预发布号,其他不变,即2.0.1-1变成2.0.1-2

当我们修改完版本号以后,就可以直接通过npm ublish发布到npm上了。

npm login
# 按照提示输入npm的用户名、密码、邮箱
npm publish

运行npm publish默认发布的是稳定版本,用户下载就是刚刚发布的版本。有的时候,我们只是想发布一个测试版本,而不想用户直接安装发布的测试版本,这个时候就需要发布一个预发布版本了。

npm version prerelease
npm publish --tag beta

比如原来的版本号是1.0.1,发布之后的版本号就变成1.0.2-0,用户通过npm install yourName 安装的还是原来的稳定版本1.0.1,如果要安装发布的预发布版本,就得手动指定版本号了,npm install yourName@1.0.2-0,或者npm install yourName@beta

测试一段时间后,如果prerelease版本的功能已经完善,可以把预发布版本设置为稳定版本

# 查看当前所有的最新版本,包括prelease和稳定版本
npm dist-tag 

# 将1.0.2-0版本设置为稳定版本
npm dist-tag add yourName@1.0.2-0 latest

# 或者通过tag来设置
npm dist-tag add yourName@beta latest

这时候1.0.2-0已经变成稳定版本了,用户通过npm install yourName安装该版本

可以使用npm dist-tag rm 删除多余tag

npm dist-tag rm yourName beta

在发布预发布版本号是,通常会加上版本号前缀,比如常用的alpha内侧版本,beta公测版本

npm version prerelease --preid=beta
# v1.0.2-beta.0

Last updated:

Released under the MIT License.