Appearance
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