为什么这个 `npm version` 命令会中断?

Why does this `npm version` command break?

很简单,这个命令有效:

npm version 0.13.0-20190723T144221.855f01d

但是这个没有:

npm version 0.13.0-20190723T125957.0665893

为什么?它破坏了我们的构建过程,因此了解发生这种情况的原因会很有用。

连字符后面的

None 部分允许是具有前导 0 的数字(除非数字等于 0)。

这只适用于数字,使.855f01d.0855f01d都有效,但.0855无效。

这可以在 https://semver.org/spec/v2.0.0.html 的规则 9 中找到:

A pre-release version MAY be denoted by appending a hyphen and a series of dot separated identifiers immediately following the patch version.

Identifiers MUST comprise only ASCII alphanumerics and hyphen [0-9A-Za-z-]. Identifiers MUST NOT be empty.

Numeric identifiers MUST NOT include leading zeroes.

出于测试目的,您可以在此页面上填写您建议或尝试的版本https://jubianchi.github.io/semver-check/#/ .