yvmでyarnの複数バージョンを管理する

# yvmでyarnの複数バージョンを管理する

## 概略

Yarnのバージョン管理マネージャー「[yvm](https://yvm.js.org/docs/overview)」を通して、`.yvmrc`でyarnのバージョン情報を共有しつつ、自動で切り替わるように設定します。

Xcode→Homebrew→yvm→yarnの順番でインストールの手順で実施します。

自動切り替え最高。

### リリース情報確認URL

- [Homebrewのリリースノート](https://github.com/Homebrew/brew/releases)
- [yarnのリリースノート](https://github.com/yarnpkg/yarn/releases/)
- [yvmのリリースノート](https://github.com/tophat/yvm/releases)

### 動作確認済みバージョン

- Homebrew(v 2.4.13)
- yvm(v3.6.7)
- macOS Catalina(v10.15.6)
- terminal(zsh)

### 更新履歴

- 2020/8/30 初稿

---

## xcodeのインストール

インストール済みかどうか、ターミナルから確認します。

```zsh:terminal
% xcode-select --version
↓
xcode-select version xxxx.
```

もし、インストールをしていない場合は、[Xcodeのダウンロードページ](https://apps.apple.com/jp/app/xcode/id497799835?mt=12)からインストールしてください。（時間かかります。）

## すでにyarnインストール済みの場合は削除する

はじめに…`yarn -v`を実行して、yarnがインストール済みか確認します。

```terminal:terminal
% yarn -v
↓
1.xx.x
```
インストール済みの場合は削除しておきます。本記事を見る方のほとんどはHomebrewを利用していると思いますが、各々のインストール方法に合わせて削除してください。

```terminal:terminal
// Homebrewでインストールしている場合
↓
% brew uninstall yarn

// homebrew以外でインストールしたしている場合は、該当の方法で削除してください。
↓
- tarball：rm -rf "$HOME/.yarn"
- npm：npm uninstall -g yarn
- ubuntu：Sudo apt-get remove yarn && Sudo apt-get purge yarn
- centos：yum remove yarn
- windows：choco uninstall yarn
```

## Homebrewをインストールする

Homebrewがインストール済みか確認します。昨日の自分は赤の他人です。
インストール済みの人は次の項へ移動してください。

```terminal:terminal
// インストール済みか確認のために、Homebrewのバージョンを表示する
% brew -v
```

[公式ドキュメント](https://brew.sh/index_ja)を参考にHomebrewをインストールします。
途中インストールユーザのパスワード入力を求められるので記載してEnterキーを押します。

```terminal:terminal
% /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
↓
% Password:鍵マーク
↓
==> Next steps:
- Run `brew help` to get started
- Further documentation: 
    https://docs.brew.sh
```

インストール完了時に出てくるNext stepsに従って、Homebrewの動作を確認します。

```terminal:terminal
% brew help
↓
Example usage:
  brew search [TEXT|/REGEX/]
  brew info [FORMULA...]
  brew install FORMULA...
...
```

色々と出てきたら、Homebrewのインストール完了です。

## yvmのインストール

[公式ドキュメント](https://github.com/tophat/yvm)を参考に、Homebrewのbrewコマンドを使ってインストールを行います。

```terminal:terminal
% brew install tophat/bar/yvm
% curl -s https://raw.githubusercontent.com/tophat/yvm/master/scripts/install.js | node
```

インストール完了後、一度ターミナルを再起動して、yvmのバージョンを確認します。

```terminal:terminal
% exec $SHELL -l
% yvm version 
↓
v3.x.x
```

yvmのインストール完了です。


## yvmを使ってyarnのインストール

はじめに、yvmを最新へアップデートします。

```terminal:terminal
% yvm update-self
```

`install`コマンドでyvmでyarnの最新版をインストールします。

```terminal:terminal
% yvm install latest
```

yarnのバージョンを確認します。

```terminal:terminal
% yarn -v
↓
1.22.x
```

バージョンが表示されたら、yarnのインストール完了です。

### yvmでyarnの他のバージョンをインストールしてみる

試しに、yvm v1.22.4をインストールしてみます。

```terminal:terminal
% yvm install 1.22.4
```

`list`コマンドで、yvmへインストール済みのyarnのバージョンを表示します｡

```terminal:terminal
% yvm list 
↓
Installed yarn versions:
 - 1.22.4
 ✓ 1.xx.x (Global Default)
```

チェックマークがついているバージョンが、現在利用中のyarnバージョンです。

### yvmでyarnの他のバージョンへ切り替えてみる

`use`コマンドで、先ほどインストールしたv1.22.4へ切り替えてみます。

```terminal:terminal
% yvm use 1.22.4
↓
Now using yarn version 1.22.4
```

`list`コマンドで、チェックマークが移動していることを確認します。

```terminal:terminal
% yvm list
↓
Installed yarn versions:
 ✓ 1.22.4
 - 1.xx.x (Global Default)
```

念のため、yarnのバージョンも確認。

```terminal:terminal
% yarn -v
↓
1.22.4
```

OK。

## .yvmrcファイルでyarnバージョンを共有する

yarnのバージョンを指定したいプロジェクトルートに、バージョンを書いた`.yvmrc`ファイルを置きます。

```terminal:.yvmrc
// .yvmrcファイル
1.22.2
```

プロジェクトルート（`.yvmrc`ファイルをおいたディレクトリ）で、`yarn -v`を実行してみます。

```terminal:terminal
% yarn -v
↓
Installing yarn v1.22.2 in /Users/.../.yvm
Downloading...
...
Installation successful
1.22.2
```

自動で指定バージョンのyarnがインストールされ、無事、yarnのバージョン情報が表示されました。

これで、yarn生活もシンプルに。やったね。