为什么添加插入符号或波形符会导致我的semver版本无效?

时间:2017-06-21 23:22:11

标签: javascript node.js semantic-versioning

我正在使用此软件包:https://github.com/npm/node-semver在我正在处理的项目中进行一些简单的semver版本比较(我使用的是最新的5.3.0版本)。这似乎是一个非常安全的库。事实上,文档说:

  

节点的semver解析器(npm使用的那个)

所以我很惊讶遇到任何问题。在使用某些非常基本的版本时,我会使用任何比较函数获得TypeError: Invalid Version,例如:^1.2.3~1.2.3等。事情按预期工作,只要很长时间因为我排除了插入符号/波浪号,但这似乎是真正基本的东西。我错过了一些明显的东西吗?

示例(我只是在Gulp任务中运行它们):

// logs 1.2.3
console.log(semver.valid('1.2.3'));

// logs 'null'
console.log(semver.valid('^1.2.3'));

// logs 'null'
console.log(semver.valid('~1.2.3'));

// logs TypeError: Invalid Version ^1.2.3`
console.log(semver.satisfies('1.3.0', '^1.2.3')); 

1 个答案:

答案 0 :(得分:0)

版本和版本范围之间存在区别; 1.2.3是前者,^1.2.3是后者。

^1.2.3~1.2.3不引用任何一个版本;可能有多个版本满足这些范围。