###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ファイルに以下を追記
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: v14.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のバージョン管理ができるのは非常に便利ですね。