node package manager

versioning

版本号(version number)


NPM version spm package Build Status Coverage Status

语义化版本号比较模块。

语义化版本号通常定义如下:

Major_Version_Number.Minor_Version_Number[.Revision_Number[.Build_Number]]
 
主版本号            .子版本号            [.修正版本号     [.编译版本号  ]]

使用

var version = require("versioning");
version.compare("6.0", "6"); // 0 
version.eq("6.0", "6"); // true 
 
var v = new version("6.0");
== 6 // true 
> 6  // false 

API

静态方法:

version.compare(v1, v2)

比较两个语义化版本号的大小。

返回:

  • 如果两个版本号都具有的部分相等,返回 0;
  • 如果两个版本号都具有的部分中,v1 大于 v2 则返回 1;
  • 如果两个版本号都具有的部分中,v1 小于 v2 则返回 -1。

version.eq(v1, v2)

比较两个版本号是否相等。

返回:

  • 如果两个版本号都具有的部分相等,返回 true;
  • 否则,返回 false。

version.gt(v1, v2)

比较两个版本号都具有的部分中,v1 是否大于 v2。

返回:

  • 如果 v1 > v2,返回 true;
  • 否则返回 false。

version.gte(v1, v2)

比较两个版本号都具有的部分中,v1 是否大于或等于 v2。

返回:

  • 如果 v1 >= v2,返回 true;
  • 否则,返回 false。

version.lt(v1, v2)

比较两个版本号都具有的部分中,v1 是否小于 v2。

返回:

  • 如果 v1 < v2,返回 true;
  • 否则,返回 false。

version.lte(v1, v2)

比较两个版本号都具有的部分中,v1 是否小于或等于 v2。

返回:

  • 如果 v1 <= v2,返回 true;
  • 否则,返回 false。

实例化

除了上面的静态方法, versioning 还可以进行实例化,API 与上面一致。

特殊的,versioning 实例可以使用算术比较运算符,比较两个版本的大小。

注意:使用算术比较运算符,只能比较到子版本号,而且要求子版本号小于 10 的场景。

var versioning = require("versioning");
 
var ver = new versioning("6.0");
 
ver.eq(6); // true. 
ver.gte("5.9"); // true. 
 
ver == 6 // true. 
ver > 5.9 // true. 

注意

JavaScript 引擎的限制,versioning 实例与字符串相加时,只返回两级版本号。 要得到完整的原生版本号,需要使用显示转换方式。

var v = new versioning("1.2.3.4");
 
"" + v; // "1.2" 
 
String(v); // "1.2.3.4" 
v.toString(); // "1.2.3.4"