• ..

git

    package.json のバージョン指定方法

    パッケージをインストールする時に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"
      }
    }

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