npm是否尊重semver中较新的预发布版本?

时间:2013-11-28 23:14:47

标签: node.js npm semantic-versioning

在我的应用中,我让用户通过运行npm install - bog标准行为来安装依赖项。

但是,我有一个经常更改的软件包,并且为了最终没有像0.1.12324这样荒谬的大版本号,我偶然发现了预发布的概念。

运行npm install时,npm如何处理预发布号码?

假设我的包packageA的版本号为0.1.1-r1234,而我的用户的依赖关系semver为~0.1.1

我知道未安装packageA的新用户将自动安装该版本(0.1.1-r1234)。

如果某人已安装packageA版本为0.1.1-r1233,该怎么办? npm install是否知道安装较新的预发行版?

1 个答案:

答案 0 :(得分:5)

我似乎回答了我自己的问题。 From the main page at semver.org

  

具有相同主要版本,次要版本和补丁版本的两个预发布版本的优先级必须通过从左到右比较每个点分隔标识符来确定,直到找到差异如下:仅由数字组成的标识符在数字上进行比较带有字母或连字符的标识符以ASCII排序顺序进行词法比较。数字标识符的优先级始终低于非数字标识符。如果所有前述标识符相等,则更大的预发布字段集合具有比较小集合更高的优先级。示例:1.0.0-alpha< 1.0.0-alpha.1< 1.0.0-alpha.beta< 1.0.0-beta< 1.0.0-beta.2< 1.0.0-beta.11< 1.0.0-rc.1< 1.0.0。