Node.js で semver 形式のバージョンを比較
はじめに
Node.js で semver 形式のバージョンを比較する方法。
Semantic Versioning 2.0.0 | Semantic Versioning
TL;DR
- omichelsen/compare-versions を使う
compareVersions(<ver_a>, <ver_b>)
で比較ver_a > ver_b
なら1
(例:1.1.2 > 1.1
)ver_a = ver_b
なら0
(例:1.1.0 = 1.1
)ver_a < ver_b
なら-1
(例:1.1.0 < 1.1.2
)
compareVersions.compare('10.0.1', '10.0.1', '>')
とするとtrue/false
で返却
目次
環境・条件
1 | $ sw_vers |
詳細
前置き: 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 | const compareVersions = require('compare-versions'); |
compareVersions.compare(<ver_a>, <ver_b>, '>')
で、第3引数に比較演算子(の文字列)を渡して true/false
でのチェックもできる。
1 | compareVersions.compare('1.1.2', '1.1', '>='); |
まとめ
- omichelsen/compare-versions を使う
compareVersions(<ver_a>, <ver_b>)
で比較ver_a > ver_b
なら1
(例:1.1.2 > 1.1
)ver_a = ver_b
なら0
(例:1.1.0 = 1.1
)ver_a < ver_b
なら-1
(例:1.1.0 < 1.1.2
)
compareVersions.compare('10.0.1', '10.0.1', '>')
とするとtrue/false
で返却
参考文献
- omichelsen/compare-versions: Compare semver version strings to find which is greater, equal or lesser.
- Semantic Versioning 2.0.0 | Semantic Versioning
- Semantic Versioning おさらい | Developers.IO
関連記事
- axios で添付ファイルありのリクエスト(multipart/form-data の POST)
- axios で unable to verify the first certificate の対応方法
- ブラウザで Node.js の Buffer を使う(CDN)
- Vue.js を使ってメインページ側で動作する Chrome 拡張機能を開発する方法
- webpack で Moment.js の不要な Locale を除去
- webpack & Babel を使って Chrome 拡張機能を開発するためのテンプレート(Hot Reload 付き)
- JavaScript で URL のクエリパラメータを操作する方法
- jQuery Select2 で、初期値の設定と選択状態のクリア