pkgでインストールしたnode.jsを、Nodebrewのnode.jsに入れ替えたい！

# nodeのバージョン管理を簡単にした〜い
ので、個人的にnodeをインストールするときは最初からNodebrewを使っているのですが、仕事で使っているマシンでは何を思っていたのかpkgでインストールしていたので、入れ替えした手順を備忘として残したいと思います

~~同部署の人がnodeのバージョン変更で手こずってて、Nodebrewで一発やんけと嘲笑していたところ
自分もpkg版だったのでしれっと入れ替えた~~

とりあえず最初に、そもそもnode.jsが入っているかを確認しておきましょう

```
$ node -v
```
そしてNodebrewとは、👇

<TABLE ALIGN=CENTER>
    <TD WIDTH=400px>
      <A HREF="https://github.com/hokaccha/nodebrew#nodebrew" TARGET="_blank"><strong>hokaccha / nodebrew</strong></a><br>
    <p>Node.js version manager. Contribute to hokaccha/nodebrew deve github.com</p>
    </TD>
    <TD WIDTH=150px>
      <IMG STYLE="float:left;margin-right:.5em;" src="https://is1-ssl.mzstatic.com/image/thumb/Purple114/v4/46/23/a9/4623a9d3-4503-732b-0d4f-e5b01bef2f94/AppIcon-0-1x_U007emarketing-0-7-0-85-220.png/246x0w.png" ALT="" WIDTH="120" HEIGHT="120" />
    </TD>

</TABLE>

<br>
# pkg(インストーラ)でインストールしたnode.jsをアンインストールする
まずは、すでに**インストーラでインストールされている**nodeをアンインストールします
ターミナルで下記を実行します

```
$ lsbom -f -l -s -pf /var/db/receipts/org.nodejs.node.pkg.bom \
```

そして下記を**1行ずつ**実行します

```
| while read i; do

 sudo rm /usr/local/${i}

done

sudo rm -rf /usr/local/lib/node \

/usr/local/lib/node_modules \

/var/db/receipts/org.nodejs.*
```
「\」が最後についているコマンドを実行すると、次の行の初めに「>」がつきますが、そのままコマンド実行して大丈夫です

一緒にnpmもアンインストールします

```
$ sudo rm -rf ~/.npm
```

上記コマンドまでで、インストーラでインストールしたnode.jsとnpmのアンインストールが済みました🎉
<br>
# Nodebrewをインストールする
### Nodebrewを入れる前に…
Homebrewをインストールしていないと、Nodebrewもインストールできません
(HomebrewでNodebrewをインストールするので…)

なので、Homebrewがインストールされているか確認しましょう

```
$ brew doctor
```

⚠️エラーが出ていたら、エラー内容を確認して解消しておきます

```
Your system is ready to brew.
```

問題なくインストールされていれば、「(Homebrewの)準備できてるよ！」と言われます

インストール自体をまだしていなければ、下記ワンライナーを実行して、インストールしておきましょう

```
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
```
<TABLE ALIGN=CENTER>
    <TD WIDTH=400px>
      <A HREF="https://brew.sh/index_ja" TARGET="_blank"><strong>Homebrew</strong></a><br>
    <p>Homebrew The Missing Package Manager for macOS (or Linux).　　　</p>
    </TD>
    <TD WIDTH=150px>
      <IMG STYLE="float:left;margin-right:.5em;" src="https://brew.sh/assets/img/homebrew-256x256.png" ALT="" WIDTH="120" HEIGHT="120" />
    </TD>

</TABLE>
### Nodebrewをインストールする
インストーラでインストールしたnode.jsをアンインストールして、Homebrewもインストールしたところで、
やっとこさ**Nodebrewをインストール**します！

```
$ brew install nodebrew
```

Homebrewのアップデートがある場合は、ここでしれっとアップデートされます😂

```
~~~中略~~~

==> Downloading https://github.com/hokaccha/nodebrew/archive/v1.0.1.tar.gz
==> Downloading from https://codeload.github.com/hokaccha/nodebrew/tar.gz/v1.0.1
#=#=#                                                                         
==> Caveats
You need to manually run setup_dirs to create directories required by nodebrew:
 /usr/local/opt/nodebrew/bin/nodebrew setup_dirs

Add path:
 export PATH=$HOME/.nodebrew/current/bin:$PATH

To use Homebrew's directories rather than ~/.nodebrew add to your profile:
 export NODEBREW_ROOT=/usr/local/var/nodebrew

Bash completion has been installed to:
 /usr/local/etc/bash_completion.d

zsh completions have been installed to:
 /usr/local/share/zsh/site-functions
==> Summary
🍺  /usr/local/Cellar/nodebrew/1.0.1: 8 files, 38.6KB, built in 2 seconds
```

Nodebrewがインストールされたっぽいですね
下記コマンドを実行して、問題なくインストールされているか確認してみましょう

```
$ nodebrew -v
```

バージョン番号をはじめ、コマンド一覧などが出てきたら、Nodebrewがインストールされています🎉
また、brewコマンドでも確認できます

```
$ brew list
nodebrew        <- Nodebrew入ってる！
```

次に環境変数へNodebrew関連のものを追加します

```
$ vi ~/.bash_profile
```

viコマンドで直接下記のパスを追加します

```
export PATH=$HOME/.nodebrew/current/bin:$PATH
```

追加したらsourceコマンドで更新して、この設定を反映させます

```
source ~/.bash_profile
```

最後にset upしてNodebrewのインストール〜設定完了です！

```
$ nodebrew setup
```

```
Fetching nodebrew...
Installed nodebrew in $HOME/.nodebrew

========================================
Export a path to nodebrew:

export PATH=$HOME/.nodebrew/current/bin:$PATH
========================================
```

さっき更新した設定がset upされていることが確認できます
<br>
# Nodebrewでnode.jsを再インストールする
Nodebrewもインストールできたので、これでやっとpkg版node.jsに代わる、 **Nodebrew版node.js**インストールの準備が整いました

まずはインストールするnode.jsの格納先を作りましょう

```
$ mkdir -p ~/.nodebrew/src
```

Nodebrewでインストールできるnode.jsのバージョンを確認してみます

```
$ nodebrew ls-remote
```

```
v0.0.1   
 v0.0.2    v0.0.3    v0.0.4    v0.0.5    v0.0.6    

v0.1.0    v0.1.1    v0.1.2    v0.1.3    v0.1.4    v0.1.5    v0.1.6    v0.1.7
v0.1.8    v0.1.9    v0.1.10   v0.1.11   v0.1.12   v0.1.13   v0.1.14   v0.1.15
v0.1.16   v0.1.17   v0.1.18   v0.1.19   v0.1.20   v0.1.21   v0.1.22   v0.1.23
v0.1.24   v0.1.25   v0.1.26   v0.1.27   v0.1.28   v0.1.29   v0.1.30   v0.1.31
v0.1.32   v0.1.33   v0.1.90   v0.1.91   v0.1.92   v0.1.93   v0.1.94   v0.1.95
v0.1.96   v0.1.97   v0.1.98   v0.1.99   v0.1.100  v0.1.101  v0.1.102  v0.1.103
v0.1.104  

v0.2.0    v0.2.1    v0.2.2    v0.2.3    v0.2.4    v0.2.5    v0.2.6    

v0.3.0    v0.3.1    v0.3.2    v0.3.3    v0.3.4    v0.3.5    v0.3.6    v0.3.7
v0.3.8    

v0.4.0    v0.4.1    v0.4.2    v0.4.3    v0.4.4    v0.4.5    v0.4.6    v0.4.7
v0.4.8    v0.4.9    v0.4.10   v0.4.11   v0.4.12

​~~~中略~~~
​
```

上記のように、ずらずら〜っとバージョン番号が並びます
その中から使いたいバージョン番号を選んで、

```
$ nodebrew install <バージョン番号>
```

でインストールします
ちなみに、安定版のインストールは、

```
$ nodebrew install-binary stable
```

最新版のインストールは、

```
$ nodebrew install-binary latest
```

```
Installed successfully
```

「successfully」とあるので、インストール成功したっぽいですね
問題なく指定したバージョン番号のnode.jsがインストールできているか確認してみましょう

```
$ nodebrew ls
```

上記コマンドを実行して、先ほどインストールしたバージョン番号が表示されれば、問題なくインストールできています🎉
インストールしたnode.jsのバージョンをcurrentに設定します

```
$ nodebrew use <使いたいバージョン番号>
```

で設定し、

```
$ nodebrew ls
```

で出てくる「current」に使いたいバージョン番号が表示されていれば、晴れて入れ替え完了です！🎉
currentに表示されているnode.jsのバージョンが使われます

```
$ node -v
```

```
$ npm -v
```

で使用されるバージョンが確認できます
 <br>
# node.jsのバージョンを変えてみる
せっかくNodebrewでnode.jsのバージョン管理が楽になったので、お試しで**バージョンを変えてみましょう**！

```
$ nodebrew ls-remote
```
でインストールできるバージョンを確認して…

```
$ nodebrew install v13.13.0
```

試しで入れてみる「v13.13.0」を指定してインストールして…

```
$ nodebrew ls
```

```
v13.13.0
v14.5.0    <- 先に入れていたバージョン

current: v14.5.0    <- 先に設定していたバージョン
```

問題なく追加で入れたバージョンが表示されていることを確認して…

```
$ nodebrew use v13.13.0
```

追加で入れたバージョンを設定して…

```
$ nodebrew ls
```

```
v13.13.0    <- 追加で入れたバージョン
v14.5.0

current: v13.13.0    <- 追加で入れたバージョン
```

できました！🎉
複数のバージョンが保持できて、しかも切り替えも簡単ですよね！

一応それぞれのコマンドでもバージョン確認

```
$ node -v
v13.13.0
```

```
$ npm -v
6.14.4
```

**最新版だとうまく動かない…**や、
**様々なバージョンで動作確認したい！**などに当てはまる方には、入れ替え超おすすめします！

<br>