[Mac]Node.js のインストール備忘録

# はじめに
オレオレインストール備忘録です。
既出で今更感満載ではあるんですが、自分用に再構築が必要になった時のために。

なぜかディレクトリのみ存在していて、環境ぐちゃぐちゃでコマンドの実行もできなかったので、これを機にインストールし直すことにしました。

```shell
 drwxr-xr-x    9 user  staff   288B Sep 23  2018 .nodebrew
 drwxr-xr-x  453 user  staff    14K Sep 23  2018 .npm
```

# 事前準備
既存のディレクトリを削除します。

```shell
❯rm -rf .nodebrew
❯rm -ef .npm
```

# nodebrew のインストール
自分の環境(Mac)は Homebrew が入ってるので、 Homebrew を使って <b><font color="red">nodebrew</font></b> をインストールします。

## nodebrew とは
Node.jsの **バージョン管理ツール** です。
Node.js 自体はソースから入れたり、インストーラー使ったりいろいろインストール方法はあるのですが、Homebrew でパッケージ管理してるし、バージョン切り替えて使う目的があるわけじゃないけど、管理はラクだろうな、という安易な理由から nodebrew を使うことにしました。

> 素でNode.jsだけインストールしたい場合は、ここから直接取ってきたらいいと思う
[Node.js](https://nodejs.org/ "Node.js")

```shell

  ❯ brew install nodebrew                                                             

  Updating 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
  ######################################################################## 100.0%
  ==> 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 10 seconds
  >>> elapsed time 16s
```

nodebrewコマンドが使えることを確認します。

```shell
 ❯ nodebrew                                                                          

 nodebrew 1.0.1
 Usage:
     nodebrew help                         Show this message
     nodebrew install <version>            Download and install <version> (from binary)
     nodebrew compile <version>            Download and install <version> (from source)
     nodebrew install-binary <version>     Alias of `install` (For backword compatibility)
     nodebrew uninstall <version>          Uninstall <version>
     nodebrew use <version>                Use <version>
     nodebrew list                         List installed versions
     nodebrew ls                           Alias for `list`
     nodebrew ls-remote                    List remote versions
     nodebrew ls-all                       List remote and installed versions
     nodebrew alias <key> <value>          Set alias
     nodebrew unalias <key>                Remove alias
     nodebrew clean <version> | all        Remove source file
     nodebrew selfupdate                   Update nodebrew
     nodebrew migrate-package <version>    Install global NPM packages contained in <version> to current version
     nodebrew exec <version> -- <command>  Execute <command> using specified <version>
 Example:
     # install
     nodebrew install v8.9.4
     # use a specific version number
     nodebrew use v8.9.4
```

nodebrew でインストール可能な Node.js のバージョンを確認したい時は以下のコマンドで確認可能です。

```shell
❯ nodebrew ls-remote
```

# Node.js のインストール
最新版の Node.js をインストールする時は以下のコマンドを実行します。

```shell
 ❯ nodebrew install-binary latest 
```

## Warning (No such file or directory) が出てインストールに失敗する場合
インストール時にこんな Warning が出る場合があります。

```shell
 ❯ nodebrew install-binary latest                                                    

 Fetching: https://nodejs.org/dist/v12.7.0/node-v12.7.0-darwin-x64.tar.gz
 Warning: Failed to create the file
 Warning: /Users/userDir/.nodebrew/src/v12.7.0/node-v12.7.0-darwin-x64.tar.gz:
 Warning: No such file or directory
```

この Warning が出た場合は、src ディレクトリを作ったらOK。

```shell
❯ mkdir -p ~/.nodebrew/src
```

ディレクトリを作成したら、正常にインストールできました。

```shell
 ❯ nodebrew install-binary latest
                                                   
 Fetching: https://nodejs.org/dist/v12.7.0/node-v12.7.0-darwin-x64.tar.gz
 ######################################################################## 100.0%
 Installed successfully
 >>> elapsed time 17s
```

# Node.js のバージョン確認
インストールされた Node.js のバージョンを確認します。

```shell
 ❯ nodebrew ls                                                                       
 v12.7.0
 
 current: none
```
<b><font color="blue">"current: none"</font></b> になっているので、最新版(この時点では v12.7.0 )がインストールされているものの、このバージョンが有効になっていません。
このバージョンで使うために、コマンドを実行して有効化します。

```shell
 ❯ nodebrew use v12.7.0                                                              
 use v12.7.0
```

<b><font color="blue">"current: v12.7.0"</font></b> とセットされたことが確認できます。

```shell
 ❯ nodebrew ls                                                                       
 v12.7.0
 
 current: v12.7.0
```

# パスを追加する (Zsh)
パスを設定して、nodeコマンドが使えるようにします。
パスの追加は、bash用に書かれている記事が多いんですが、わたしはZsh(Prezto)環境で使っているので、以下のファイルにパスを追加します。
[[Mac]Zshでoh-my-zshからPreztoに切り替える](https://qiita.com/rocca0504/items/2457c9d44988645e04a7 "[Mac]Zshでoh-my-zshからPreztoに切り替える")

```shell
 ❯ ll ~/.zshrc                                                                       
 lrwxr-xr-x  1 user  staff    36B May  6 11:03 /Users/userDir/.zshrc -> /Users/userDir/.zprezto/runcoms/zshrc
```

```shell:~/.zshrc 
 # Customize to your needs...
 ## nodebrew
 export PATH=$HOME/.nodebrew/current/bin:$PATH
```


# 各コマンドが使えることを確認
node コマンドと npm コマンドが通ることを確認します。
＊npm = Node.js の **パッケージ管理ツール**

```shell
 ❯ node -v                                                                           
 v12.7.0
 
 ❯ npm -v                                                                            
 6.10.0
```