大多数软件在发布之前都有beta版 — 该版本包含某些还处于试验阶段的功能,尚未达到生产就绪状态。
常常会有一些beta测试用户群体,他们使用该版本,对其进行测试,提交bug和其他发现的问题。
开发NPM module也有相同的过程,那么我们如何通过NPM部署beta版本呢?
1. 版本号的组成
- major:代表主版本号,通常在需要提交不能向下兼容的情况下对该版本号进行升级
- minor:代表次版本号,通常在新增功能时才对该版本号进行升级
- patch:代表修复版本号,升级该版本号通常代表修复一些bug,但没有新增功能或者存在不向下兼容的功能
- prerelease:带有该版本号的包通常表示在测试阶段,尚未稳定,通常不建议用户安装。
1.1. prerelease 预发布
- alpha: 代表内部测试版,会有很多Bug,是比beta更早的版本,一般不建议对外发布
- beta: 相对alpha版本已有了很大的改进,但还是存在一些缺陷,需要经过多次测试来进一步消除
- rc:Release Candidate顾名思义就是正式发布的候选版本。和Beta版最大的差别在于Beta阶段会一直加入新的功能,但是到了RC版本,几乎就不会加入新的功能了,而主要着重于除错! RC版本是最终发放给用户的最接近正式版的版本,发行后改正bug就是正式版了,就是正式版之前的最后一个测试版
例如:
1.1.0-alpha.1
1.1.0-beta.1
1.1.0-rc.1
1.2. 自动更新版本号
npm version major 结果0.0.1->1.0.0
npm version minor 结果0.0.1->0.1.0
npm version patch 结果0.0.1->0.0.2
npm version prerelease 结果0.0.1 -> 0.0.2-0
npm version prerelease --preid=beta 结果0.0.1->0.0.2-beta.0
npm version prerelease 0.0.2-beta.0 结果0.0.1->0.0.2-beta.0
1.3. 自动更新版本号并发布
# 自动更新package.json版本号并发布alpha版本
npm version prerelease --preid=alpha && npm publish --tag alpha
# 自动更新package.json版本号并发布beta版本
npm version prerelease --preid=beta && npm publish --tag beta
2. 如何部署beta版
实现新功能之后,我们首先要做的就是像常规发行版本那样,对版本进行修改。
在你的版本末尾添加beta.0非常重要。.0表示它是哪个版本。当我们对beta版进行修补发布新的beta版本时,我们会将.0递增到.1,以此类推。
因此,我们的版本格式应如下所示:3.1.0-beta.0.
接下来,我们将继续提交所有的更改。
除提交以外,给beta版本添加git标签也是一个好习惯。可以通过命令 git tag 3.1.0-beta.0 添加一条标签。
你可以运行 npm version 3.1.0-beta.0来更新package.json,同时创建一个git标签 (参考 npm-version)。
现在可以发布beta版本了。
发布beta版或alpha版和发布最终版非常相似,唯一的区别是publish命令中的 --tag
标志。
发布beta版只需要运行以下命令:
# 发布beta版本
npm publish --tag beta
# 发布alpha版本
npm publish --tag alpha
3. 使用NPM Info查看标签
npm info 是一个很方便的命令,可以用来查看已发布的版本和package的标签。
我们可以看到有一个稳定的3.0.0
版本与最新的标签相关联。
另外,我们刚刚创建了一个新的beta标签并将它链接到3.1.0.beta.0
版本。如你所见,也已经有一个alpha版4.0.1-alpha.0
。
4. 通过标签进行NPM install
用户通常使用标准的npm install命令安装库:
npm install —-save libraryname
该命令将获取与最新标签关联的版本。
npmjs.com上仅显示标记为最新的版本
但是也可以安装基于标签的版本,Beta版本使用者可以通过以下方式安装最新版本:
npm install — save libraryname@beta.
5. 结论
标签提供了一种发布预发行版本的好方法,供测试团队使用。
这些预发行版本提供了一种获取新版本库经验和反馈的好方法。