とある案件で、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のバージョンを落としたことで、他のプロジェクトに影響がないか気をつけてくださいね。プロジェクトごとにバージョンを管理する方法もあるみたいですので、興味がある方はあわせて調べてみてください。