これまで、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 yarn@1.18.0
先ほどインストールした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はアンインストールせずに、そのまま残しておいて大丈夫!