使用semver 包我没有看到一种简单的方法来检查我是否需要一个库版本是否有兼容的版本。这让我想知道我是否遗漏了一些明显的东西,因为它看起来像是一个常见的操作。
根据Semver.org,任何相同或新但不在新主要版本中的版本都应该是兼容的。因此,如果我需要1.2.3
并且我有,>=1.2.3 <2.0.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
是的,这是一小段代码。看起来这将是一个如此常见的操作,我不必操作字符串并手动构建范围比较只是为了检查一个常见的问题,X 是否与 Y 兼容。
有没有更简单的方法?