Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何检查具有npm semver模块的版本之间的兼容性?_Node.js_Semantic Versioning - Fatal编程技术网

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