nodejsのsemverまとめ

  • このエントリーをはてなブックマークに追加

semverの解釈がエコシステムによって異なったりする場合があるので、nodejs(npm)の場合を備忘録メモ。

3桁の数字で表現:x.y.z

  • 最初の桁はメジャーバージョン
  • 2桁目はマイナーバージョン
  • 3桁目はパッチバージョン

バージョンの上げ方

  • 互換性のないAPIを変更する場合、メジャーバージョンをアップ
  • 下位互換性のある方法で機能を追加する場合、マイナーバージョンをアップ
  • 下位互換性のあるバグ修正を行う場合、パッチバージョンがアップ

バージョン表記の記号

  • ^: 一番左にあるゼロ以外の数値を変更しない

    • ^1.2.3 => 1.2.3 <= version < 2.0.0
    • ^0.13.0 => 0.13.0 <= version < 0.14.0
    • 0.xの場合とそれ以外とでルールが異なるので注意。
  • ~: 一番右のバージョンがあがる

    • ~1.2.3 => 1.2.3 <= version < 1.3.0
    • ~1.2 => 1.2.0 <= version < 1.3.0, 1.2.xと同じ。
    • ~1 => 1 <= version < 2, 1.xと同じ。
  • = ピンポイントでそのバージョン

    • =1.2.3 => 1.2.3
  • - レンジ

    • 1.2.3 - 1.2.4 => 1.2.3 <= version <=1.2.4
    • 両端とも含みます
  • .xという表記もできるようだ

その他

  • 記号なしの場合は、ピンポイントでそのバージョン。(=と同じかな)
  • latest 最新のバージョン。(正確にはTag指定で、npmレポジトリにlatestというタグが存在するから)

複数指定

ルールが分かりづらい場合、分解して書いた方が分かりやすい

  • 1.2.3 - 1.2.5
  • >=1.2.3 <1.3.0
  • <1.0.0 || >2.3.4 || >=3.0.0 <4.0.0

確認する方法

npm semver calculator というツールでオンラインで検証できます。

参考情報