開発覚書はてな版

個人的な開発関連の備忘録

【Node.js】dependenciesでよく使うバージョン指定

概要

Node.jsのpackage.jsonのバージョン指定でよく使う設定について記載。

動作環境

  • Node.js 8.9.x

バージョン固定

バージョンだけの記載(例:1.0.1)の場合、その バージョンに限定して取得します。

設定例
{
  "dependencies": {
    "hoge": "1.0.1"
  }
}
x指定

パッチ or マイナー バージョン箇所にx指定する場合があります。

マイナーバージョンの場合、記載は1.x等になります。
範囲は1.0.0以上、2.0.0未満の最新が対象となります。

パッチバージョンの場合、記載は1.1.x等になります。
範囲は1.1.0以上、1.2.0未満の最新が対象となります。

TypeScript等にマイナーバージョンで破壊的変更が入るライブラリの場合は、パッチバージョンにx指定をしておくと安全です。

設定例
{
  "dependencies": {
    "hoge": "1.x",
    "hige": "1.2.x"
  }
}

~(チルダ)指定

基本的にはx指定と同じです。
パッチバージョンが指定されている場合は、指定されたパッチバージョン以上になります。

~1.2.3 の場合、1.2.3以上 1.3.0未満
~1.2 = 1.2.x
~1 = 1.x

^(キャレット)指定

挙動にくせがある指定方法です。一番左の0以外を変更しないようにバージョンを取得します。
そのため、メジャー・マイナーバージョンの指定によって挙動が変わります。 基本的にはチルダ指定をおすすめします。

^1.2.3 の場合、1.2.3以上、1.3.0未満
^0.2.3 の場合、0.2.3以上、0.3.0未満
^0.0.3 の場合、0.0.3以上、0.0.4未満

参考URL

https://docs.npmjs.com/misc/semverdocs.npmjs.com