gulp実行エラーでnode.jsのバージョンを変更する

###gulp実行エラー発生

```
$ gulp
```

gulpを実行すると下記のエラーが発生した。

```
ReferenceError: primordials is not defined
```

エラーの意味は、node.jsとgulpのバージョンが合ってないよということ。

ちなみにバージョンは下記

```
$ node -v
v14.8.0

$ gulp -v
CLI version: 2.3.0
Local version: 3.9.1

$ npm -v
6.9.0
```

###上記エラーの対処方法は2つ。

1.gulpのバージョンを3系から最新の4系に変更する。
2.node.jsのバージョンを下げる

今回はnode.jsのバージョンを下げる方法で対応する。

ちなみにnode.jsはhomebrewでインストールしていました。

```
brew install node.js
```

ここでいろいろ調べてみるとnodebrewという便利なツールがあることを発見。

nodebrewとはnode.jsのバージョンを管理できるツールとのこと。

###homebrewでnodebrewをインストール

```
brew install nodebrew

#インストールできているか確認
$ brew list
nodebrew

##nodebrewセットアップ
$ nodebrew setup
```

###環境変数の設定
~/.bash_profileファイルに以下を追記

```.bash_profile.
export PATH=/usr/local/var/nodebrew/current/bin:$PATH
export PATH=$HOME/.nodebrew/current/bin:$PATH
```

```
#環境変数の反映
$ source ~/.bash_profile
```

###利用可能な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  ~
#全てのバージョンが表示される
```

###利用したいバージョンのnode.jsをインストールする

今回はgulp3系に対応しているv10.16.0をインストール

```
// 特定のバージョンのインストール
$ nodebrew install-binary v10.16.0

// 利用可能なバージョン(現在はこの2つのバージョンが利用できる)
$ nodebrew ls
v14.8.0
v10.16.0
current: v1４.8.0
```

###インストールエラーが出る場合

```
Fetching: https://nodejs.org/dist/v10.16.0/node-v10.16.0-darwin-x64.tar.gz
#=#=-  #       #                                                                                                                                                                                                                                               Warning: Failed to create the file
Warning: /Users/username/.nodebrew/src/v10.16.0/node-v10.16.0-darwin-x64.t
Warning: ar.gz: No such file or directory
                                                                                                                                                                                                                                                            0.0%
curl: (23) Failed writing body (0 != 985)
download failed: https://nodejs.org/dist/v10.16.0/node-v10.16.0-darwin-x64.tar.gz
```

インストールできるディレクトリが存在していないということなので、下記コマンドでディレクトリを作成する。

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

//再度インストール
$ nodebrew install-binary v10.16.0

//下記ディレクトリを見てみるとインストールされていることが確認できる。
/Users/username/.nodebrew/src
$ ls -la
drwxr-xr-x  4 username  staff  128 11 29 19:43 .
drwxr-xr-x  9 username  staff  288 11 29 19:53 ..
drwxr-xr-x  3 username  staff   96 11 29 19:42 v10.16.0
drwxr-xr-x  3 username  staff   96 11 29 19:43 v14.8.0
```

###node.jsのバージョンを変更する

```
// バージョンの切り替え
$ nodebrew use v10.16.0

//変更確認
$ node -v
v10.16.0
```

###node.jsのバージョンを変更することができたのでgulp実行

```
$ gulp
```

正常にgulpが動作しました。

フロントエンドの環境構築はnode.jsのバージョンによって結構詰まることが多かったので、nodebrewでnode.jsのバージョン管理ができるのは非常に便利ですね。