首页 > 解决方案 > 将 semver 版本与 tilde / caret 进行比较

问题描述

假设我正在使用 NPM semver 包:

const semver = require('semver');

如果我将确切版本与波浪号/插入符号版本进行比较,哪个参数具有波浪号/插入符号是否重要?例如:

semver.eq('1.2.3', '^1.2');

或者

semver.neq('~1.3.3', '1.2.8');

我猜你可以在没有任何改变的情况下切换参数,但我不是 100% 确定。

标签: node.jsnpmsemantic-versioning

解决方案


实际上semver.eq不适用于这样的范围。

semver.satisfies确实和那里的位置很重要:

console.log(semver.satisfies('1.0.0', '^1'))     // true
console.log(semver.satisfies('1.2.2', '~1.2.3')) // false


console.log(semver.satisfies('^1.0', '1.0.0'))   // Exception
console.log(semver.satisfies('1.2.2', '~1.2.3')) // Exception

console.log(semver.eq('1.0.0', '^1.0.0'))        // Exception
console.log(semver.eq('^1.0', '1.2.3'))          // Exception

这是一个ripl 链接,可以查看


推荐阅读