[Gulp] エラー「ReferenceError: primordials is not defined」の対処方法

とある案件で、package.json をもとに npm install し、Gulpを起動しようとしたところ、以下のエラーが出てきました。

$ npx gulp
fs.js:27
const { Math, Object } = primordials;
                         ^

ReferenceError: primordials is not defined

原因は、Gulp のバージョンと Node.js のバージョンが合っていないからということでした。普段は Gulp 4.0 を使用していましたが、今回の Gulp のバージョンは 3.8 でしたので、Node を v10 まで落とすことにしました。

Node.jsのバージョンを落とす

インストールされているNode.jsのバージョンを調べる

まずは、現在すでにインストールされているバージョンを以下のコマンドで見てみます。

$ nodebrew list

インストール可能なバージョンを調べる

インストール可能なバージョンのリストを表示させます。

$ nodebrew ls-remote
.
(省略)
.
v10.0.0   v10.1.0   v10.2.0   v10.2.1   v10.3.0   v10.4.0   v10.4.1   v10.5.0
v10.6.0   v10.7.0   v10.8.0   v10.9.0   v10.10.0  v10.11.0  v10.12.0  v10.13.0
v10.14.0  v10.14.1  v10.14.2  v10.15.0  v10.15.1  v10.15.2  v10.15.3  v10.16.0
v10.16.1  v10.16.2  v10.16.3  v10.17.0  v10.18.0  v10.18.1  v10.19.0  v10.20.0
v10.20.1
.
(省略)
.

任意のバージョンをインストールする

nodebrew install-binary 10.20.1

使用するnode.jsのバージョンを指定する

nodebrew use v10

現在使用しているバージョンを調べる

確認のため、現在の Node.js と Gulp のバージョンを表示してみます。以下の環境で動くようになりました。

$ node -v
v10.20.1
$ gulp -v
CLI version: 2.2.0
Local version: 3.9.1

今回、Node.jsのバージョンを落としたことで、他のプロジェクトに影響がないか気をつけてくださいね。プロジェクトごとにバージョンを管理する方法もあるみたいですので、興味がある方はあわせて調べてみてください。

石井秀幸@WEBデザイナー
WordPress公式『横浜 WordPress Meetup』主宰/株式会社ノクチ基地 取締役/モンゼンクリエイティブ合同会社 代表。WEB制作に関する技術や役立つ情報を発信していきます。10年にわたるWordPress歴を背景に、幅広いアイデアを形にするお手伝いをしています。