MacBook AirにNode.jsをインストールしてみる。

##目標

まっさらな MacBook AirにNode.jsをインストールしてみる。

Linux初心者です。諸般の事情によりMacを使うことになったので、とにかくVisual Studio Codeを動かす事のみに目標を定めて見たけれど、公式サイトからDownloadしてインストールしてみたらあっさりインストールできたので、目標をNode.jsのインストールに変更 (2019/08/11時点)

##参考にさせて頂いたページ
[macOSのターミナル(bash)のプロンプトを変えました。](https://qiita.com/eytyet/items/96ef67ec6fb3876aa3d8)
[【2019年5月版】Mac+nvm環境で brew install yarn](https://qiita.com/koinori/items/fad1631e38ed52c289d3)
[nvm + Node.js + npmのインストール](https://qiita.com/sansaisoba/items/242a8ba95bf70ba179d3)
[nvmを使ったNode.jsのインストール&バージョンアップ手順](https://qiita.com/ffggss/items/94f1c4c5d311db2ec71a)
[touchコマンドについて詳しくまとめました 【Linuxコマンド集】](https://eng-entrance.com/linux-command-touch)
##準備
- OSのバージョン
  - macOS Mojave v10.14.6

- Macメモ
　- Deleteボタンがないので、前方削除は fn+⇦(バックスペース)キー

##NVMのインストール
まず、ダイレクトにNode.jsをインストールする事はオススメではないらしい
Node.jsの違ったバージョンをインストールしたり切り替えたりするツールを使うのが普通のようです
で、有名なのが以下
 - NVM(Node Version Manager)
 - Ndenv(Node.js environment)
 - nodebrew
 - Nodist(Windows専用)

この中で[NVM](https://github.com/nvm-sh/nvm)を使う事にしました。
理由は、GitHubで最終更新日が一番今日に近かったから。

 - ターミナルを起動
   - Macなので画面下のアイコンの中からLanchpadをクリック
   - 「その他」というグループをクリック
   - "ターミナル"発見。クリック
   - ターミナル画面の初期表示は「(PC名)MacBook-Air:~ (ユーザー名)$」になっており、現在地がホームという事らしい
   - ここに戻りたい場合は「cd #」で戻ってこれる
 - 何も考えずにGitHubの公式にあるコマンドを実行

```
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
```
 - "curl"というのは、ファイルを送受信してくれるコマンドらしいので、"https://・・・"の場所から、NVMのバージョン0.34.0の場所にあるインストールコマンドが書かれている「install.sh」というシェルを持ってきて、bashで実行してね。。。　という意味だろう。たぶん。
 - 途中で"Command Line Tool for Xcode"のインストールを求められ(た気がする)るので、素直にインストール
 - これでNVMがインストールできているはずなので、以下のコマンドでバージョン確認

```
$ nvm --version
nvm: command not found
```

- バージョンが表示されません。知らないコマンドだって言われます
- Macの場合はひとひねり必要なようです。
- Macのターミナルを起動した際には、自動で「/bin/bash」が起動するらしい
- 本当は「.bashrc」というものも一緒に起動してほしいけどMacの場合は起動してないらしい
- で、「.bashrc」は「.bash_profile」に読み込み設定をする事で自動で「/bin/bash」と一緒に起動してくれるらしい
- 公式の説明を読んでいくと、「Note:On OS X 」の記述があります
- お前のOSには「.bash_profile」ってファイルが無いはずだ。だから、俺の言うコマンドを実行してもう一度インストールコマンドを実行しな。。。という事みたい
- てか、そもそも「/bin/bash」ってどこよ?
  - 探します
  - 私の知る数少ないコマンドの中のWindowsで言うところの「dir」
  
```
$ ls -al
```
  - ありません
  - これはあれだ、rootの方だきっと
  - 登ります

```
$ cd ../..
$ pwd
/
```

 - rootに来ました

```
$ ls -al
...
drwxr-xr-x@ 37 root       wheel    1184  8  8 01:33 bin
...
```

 - 「bin」発見。移動します

```
$ cd bin
$ ls -al
...
-r-xr-xr-x   1 root  wheel   618416  5 25 15:25 bash
...
```

 - 「bash」発見。移動します

```
$ cd bash
-bash: cd: bash: Not a directory
```

 - 「bash」はディレクトリじゃないと怒られました
 - という事は本体です。。。きっと
 - つまり 

```
(ルート)/bin/bash
-r-xr-xr-x   1 root  wheel   618416  5 25 15:25 bash
```


- 続いて、てか、そもそも「.bashrc」ってどこよ?
- 上記『参考にさせて頂いたページ』の最初の記事で場所を教えてくれてました

[macOSのターミナル(bash)のプロンプトを変えました。](https://qiita.com/eytyet/items/96ef67ec6fb3876aa3d8)

- 「/etc」。。。きっとルートの下です
- ここに来てルートへの移動方法を覚えました

```
$ cd /
```

 - 便利です

```
$ cd etc
$ ls -al
```
 - いました。「.bashrc」発見です

```
(ルート)/etc/bashrc
-r--r--r--   1 root  wheel     265  2 23 12:03 bashrc
```

 - ん? んんんん? 先頭に「.」無いよ。。。
 - 。。。見なかった事にします
 - 確かにこれまで見た場所には「.bash_profile」ってファイルはなかったです
 - なので公式の記述にしたがって作ります
 - ちょっと待って、今私どこにいる?
  - (ルート)/etc　にいます
 - 怖いのでホームに戻ります

```
$ cd #

$ touch ~/.bash_profile
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
```

 - 曰く「touchはファイルのタイムスタンプを変更するコマンドだ。
また、存在しないファイル名を指定することで、内容の入っていないファイルを新規作成する機能も持っている。」
 - 「.bash_profile」っていう空ファイルを作ってインストールしなおすと、自動で中身を書いてくれる。。。という事のようです
 - 中身書かれてるし

```
$ cat .bash_profile

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
```
 - そしてNVMのバージョン確認

```
$ nvm --version

nvm: command not found
```

 - orz.......
 - あれだ。再起動。ターミナルを再起動

```
$ nvm --version
0.34.0
```
- NVMインストール完了です
  

##Node.jsインストール

 - Node.jsをインストールします。
 - LTS(Long Term Support)という長期サポートがあり推奨とれているバージョンを入れます
 
  https://nodejs.org/ja/download/

```
$  nvm install --lts
...
...
Now using node v10.16.2 (npm v6.9.0)
Creating default alias: default -> lts/* (-> v10.16.2)
```
 - バージョン10.16.2がインストールされたようです。
 - デフォルト設定もしてくれてます。
 - 念の為バージョン確認

```
$ node --version
v10.16.2
```

##おわりに
Node.jsをインストールのはずが、NVMインストールの方が万倍大変でした。

Windowsユーザーのみなさんの参考になればと思います。