nvmのnodeのバージョンごとにyarnをインストールする方法


これまで、brewでインストールしたyarnを使っていたのだが、nvmでインストールした各Node.jsのバージョンごとにyarnのバージョンを変更したくなった。
調べてみると、npmでyarnをインストールすることで実現可能なことがわかった。

ちなみにyarnの公式にyarnをnpm経由でインストールするのはお勧めできないとの記述があるのだが、開発で必要になったのでメモを残しておく。

注意: npm から Yarn をインストールすることは一般的にはお勧めしません。 Node ベースのパッケージマネージャで Yarn をインストールする場合は、パッケージは署名されておらず、整合性のチェックはベーシックな SHA1 ハッシュのみで行われており、システム全体にまたがるアプリケーションをインストールする場合にはセキュリティリスクとなります。
これらの理由から、使用中の OS に最も適した方法で Yarn をインストールすることを強くお勧めします。

実行環境

macOS 10.14.6
nvm 0.35.1
npm 6.12.1

手順

nvmでNode.jsをインストールして、yarnをインストールする。

$ nvm install 12.13.1
$ nvm use 12.13.1
$ npm install -g yarn

上記を実行するとバージョン12.13.1用のディレクトリにyarnがインストールされる。
yarnをインストールする時に、バージョンは指定しなかったので、現時点で最新の1.19.2がインストールされた。

下記コマンドで確認。

$ which yarn
/Users/hoge/.nvm/versions/node/v12.13.1/bin/yarn
$ yarn -v
1.19.2

次に、nvmで新たにバージョン13.2.0のNode.jsをインストールして、同じくyarnをインストールする。
yarnのインストールの際、npm install hoge@*.*.*のように@の後ろにバージョンを指定することで特定のバージョンをインストールすることができる。

$ nvm install 13.2.0
$ nvm use 13.2.0
$ npm install -g [email protected]

先ほどインストールしたyarnはそのまま残り、バージョン13.2.0用のディレクトリに新たにyarnがインストールされる。

which yarn
/Users/takuma/.nvm/versions/node/v13.2.0/bin/yarn

また、バージョンを確認すると、先ほど指定した1.18.0がインストールされている。

$ yarn -v
1.18.0

ちなみにbrewのyarnはアンインストールせずに、そのまま残しておいて大丈夫!