npm 是不是支持 semver 中较新的预发布版本?

Posted

技术标签:

【中文标题】npm 是不是支持 semver 中较新的预发布版本?【英文标题】:Does npm honour newer prerelease versions in semver?npm 是否支持 semver 中较新的预发布版本? 【发布时间】:2013-12-15 01:52:55 【问题描述】:

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

但是,我有一个经常更改的软件包,并且为了避免得到像 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】:

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

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

【讨论】:

以上是关于npm 是不是支持 semver 中较新的预发布版本?的主要内容,如果未能解决你的问题,请参考以下文章

NPM 是不是默认安装最新的 SEMVER 或最后发布的?

jclouds 支持较新的 vCloud API

Nuget Semver - 允许的预发行字符是什么?

如何切换节点版本以安装较新的版本(v14.15.4)

如何在 HTML 中将 NPM 包用作普通的 javascript

npm - Semver 版本控制 - 使用插入符号“^”更新包