为什么我的软件包版本会解析为带有插入符号的旧版本?

问题描述 投票:0回答:1

我尝试搜索此内容,但这是一个很难搜索的主题,或者什么也没有。抱歉,如果我重复了。

与其他开发人员合作时,我们倾向于根据我们的票号来命名我们的 npm 包版本。所以可能看起来像

1.1.1-ABC123.0

我们正在遵循语义版本控制,仅供参考,最后一个(第四位数字)只是为了帮助跟踪我们正在测试的构建迭代。

需要关注的问题是,当您在版本中添加插入符号 (^) 时:

^1.1.1-AB1234.0
,它会解析为
1.1.1
。这是为什么呢?我只是想了解这个道理。我认为 1.1.1-tag.0 将被节点视为更新的版本。 或者这与开发版本与发布版本有关吗? (我在这里做出猜测)也许节点将稳定的发行版本视为最新的,并忽略您正在进行的任何开发构建。

node.js npm package.json semantic-versioning
1个回答
0
投票
npm

遵循语义版本控制,它具有

定义明确、公开可用的规范文档
在您的特定情况下,您似乎无意中(ab)使用了 SemVer 对(规范所指的)“

预发布版本[s]

”的支持,该支持在链接规范文档的第 9 点中专门定义。

我认为 1.1.1-tag.0 会被节点视为更新的版本。

这似乎是你误入歧途的地方;从规范来看,第 9 点:

预发布版本的优先级低于相关的普通版本。

简而言之,您的团队使用版本控制的方式不符合 SemVer 的定义方式,只要您继续以这种方式对包进行版本控制,您就会遇到像您所观察到的那样的意外行为。

© www.soinside.com 2019 - 2024. All rights reserved.