Node.js 如何检查具有npm semver模块的版本之间的兼容性?
使用我看不到一个简单的方法来检查我是否需要一个库的版本,我是否有一个兼容的版本。这让我怀疑我是否遗漏了一些明显的东西,因为这看起来像是一个普通的手术 根据法律,任何相同或新的版本,但不在新的主要版本中,都应该是兼容的。因此,如果我需要Node.js 如何检查具有npm semver模块的版本之间的兼容性?,node.js,semantic-versioning,Node.js,Semantic Versioning,使用我看不到一个简单的方法来检查我是否需要一个库的版本,我是否有一个兼容的版本。这让我怀疑我是否遗漏了一些明显的东西,因为这看起来像是一个普通的手术 根据法律,任何相同或新的版本,但不在新的主要版本中,都应该是兼容的。因此,如果我需要1.2.3,并且我的>=1.2.3在大多数情况下,应该创建预期范围: ^1.2.3:=>=1.2.3-0 var canUse = function(need, have) { var nextMajorVersion = semver.inc(need, '
1.2.3
,并且我的>=1.2.3在大多数情况下,应该创建预期范围:
^1.2.3
:=>=1.2.3-0
var canUse = function(need, have) {
var nextMajorVersion = semver.inc(need, 'major');
return semver.satisfies(have, '>=' + need + ' && ' + '<' + nextMajorVersion);
};
canUse('1.2.3', '1.2.3'); // true
canUse('1.2.3', '1.2.4'); // true
canUse('1.2.3', '1.3.0'); // true
canUse('1.2.3', '0.4.4'); // false
canUse('1.2.3', '2.4.4'); // false
semver.satisfies('1.2.3', '^1.2.3') // true
semver.satisfies('1.2.4', '^1.2.3') // true
semver.satisfies('1.3.0', '^1.2.3') // true
semver.satisfies('0.4.4', '^1.2.3') // false
semver.satisfies('2.4.4', '^1.2.3') // false
semver.satisfies('0.8.9', '^0.1.0') // false