パッケージをインストールする時にpackage@versionという風に指定することで、特定のバージョン(や範囲)に固定することができます。

ちなみに例にはreactパッケージを用い、これを書いている時点のreactパッケージの最新は16.8.3です。

不等号

大なり >

yarn add 'react@>15'
{
  "dependencies": {
    "react": ">16"
  }
}

上記のようにするとバージョン16より大きいもの、つまり17.x.x18.x.xの中で1番最新のものという意味になります。>16とすると、まだパッケージが存在していないのでETARGETエラーになります。(yarnだと対話モードでのバージョン選択になります)

大なりイコール >=

yarn add 'react@=>16'
{
  "dependencies": {
    "react": ">16"
  }
}

先程のを=>に変更すると16以上という意味になり16.x.x系も含まれるのでエラーにならなくなります。

小なり <

yarn add 'react@<16'
{
  "dependencies": {
    "react": "<16"
  }
}

向きを反対にすると逆の意味になります。<はそれより小さいバージョン、つまり上記の場合は15.x.x14.x.xの1番最新バージョンが対象になります。

小なりイコール <

yarn add 'react@<16'
{
  "dependencies": {
    "react": "<=16"
  }
}

これは16以下なので、16.x.x15.x.x14.x.xの中で最新という意味になります。これを書いている時点では16.8.3ということになります。

記号

チルダ ~

yarn add 'react@~16.8.0'
{
  "dependencies": {
    "react": "~16.8.0"
  }
}

そのマイナーバージョン(2番目の数値)の最新という意味になります。つまり上記の場合は最新が16.8.3なので16.8.3, 16.8.2, 16.8.1, 16.8.0 の中で最新という意味になるので16.8.3がインストールされます。

キャレット ^

yarn add 'react@^16.0.0'
{
  "dependencies": {
    "react": "^16.0.0"
  }
}

そのグローバルバージョン(1番目の数値)での最新という意味になります。これは@versionを指定しないと自動で@^latest-versionとなります。これも16.8.3, 16.8.2, 16.8.1, 16.8.0, 16.7.0, ..., 16.0.0という意味になるので16.8.3がインストールされます。

エックス x

yarn add 'react@16.8.x'
{
  "dependencies": {
    "react": "16.8.x"
  }
}

そのxに1番大きな数値が入ったバージョンがインストール対象になります。これを書いている時点では16.8.3が最新なので、xには3が入ります。

記号なし

yarn add 'react@16.8.3'
{
  "dependencies": {
    "react": "16.8.3"
  }
}

ただバージョンを指定するとそのバージョン固定になり、必ず指定したバージョンのものがインストールされます。。

JavaScript で飯食べたい歴約 5 年、 純( nju33 ) によるノートサイトです。

このサイトではドリンク代や奨学金返済の為、広告などを貼らせて頂いてますがご了承ください。

Change Log