はじめに

Node.js で semver 形式のバージョンを比較する方法。

Semantic Versioning 2.0.0 | Semantic Versioning

TL;DR

この記事が参考になった方
ここここからチャージや購入してくれると嬉しいです(ブログ主へのプレゼントではなく、ご自身へのチャージ)
欲しいもの / Wish list

目次

  1. はじめに
  2. TL;DR
  3. 環境・条件
  4. 詳細
    1. 前置き: semver とは
    2. compare-versions の使い方
      1. セットアップ
      2. バージョン比較
  5. まとめ
  6. 参考文献

環境・条件

1
2
3
4
5
6
7
8
9
10
11
12
13
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.15.5
BuildVersion: 19F101

$ node -v
v12.7.0

$ npm -v
6.14.5

$ npm v compare-versions
compare-versions@3.6.0 | MIT | deps: none | versions: 18

詳細

前置き: semver とは

Semantic Versioning のこと。

1.2.3 のようなバージョニング(バージョン設定)方式、基本的に <major>.<minor>.<patch> の3点セット。1.2.3 だと Major Version が 1、Minor Version が 2、Patch バージョンが 3。

詳しい話は公式サイト、もしくは Semantic Versioning おさらい | Developers.IO あたりを参照。

compare-versions の使い方

基本的に公式通りで OK。

セットアップ

1
$ npm i compare-versions

バージョン比較

compareVersions(<ver_a>, <ver_b>) で比較

1
2
3
4
5
6
7
const compareVersions = require('compare-versions');
compareVersions('1.1.2', '1.1');
// => 1
compareVersions('1.1.0', '1.1');
// => 0
compareVersions('1.1', '1.1.2');
// => -1

compareVersions.compare(<ver_a>, <ver_b>, '>') で、第3引数に比較演算子(の文字列)を渡して true/false でのチェックもできる。

1
2
3
4
5
6
compareVersions.compare('1.1.2', '1.1', '>=');
// => true
compareVersions.compare('1.1.2', '1.1', '=');
// => false
compareVersions.compare('1.1.2', '1.1', '<');
// => false

まとめ

参考文献

関連記事

この記事が参考になった方
ここここからチャージや購入してくれると嬉しいです(ブログ主へのプレゼントではなく、ご自身へのチャージ)
欲しいもの / Wish list