【发布时间】:2014-10-16 23:54:21
【问题描述】:
使用the semver package 我没有看到一种简单的方法来检查我是否需要某个库版本是否有兼容的版本。这让我想知道我是否遗漏了一些明显的东西,因为它看起来像是一个常见的操作。
根据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 兼容。
有没有更简单的方法?
【问题讨论】:
标签: node.js semantic-versioning