Gulp v4 は apt で入れるなという話

Gulp.js をインストールしたはずなのに Error: Cannot find module ‘gulp-util’ というエラーメッセージが表示されて、うまく動作しないことがあります。

まさに今、私が後輩から聞かされているように。

gulp-util は 2017年末の gulp v4.0.0-alpha.3 から非推奨になっているので、今さら出てくるのも一見すると不思議な話です。

公式ページでも以下のような手順でインストールすることが指示されていますので、理想的な場合にはこのような出力になるはずです。

$ npm install gulp-cli -g
$ npm install gulp -D
$ npx -p touch nodetouch gulpfile.js
$ gulp --version
CLI version: 2.2.0
Local version: 4.0.2

ところがエラーメッセージが表示されている画面を見ると、そうはなっていません。

$ gulp --version
module.js:550
    throw err;
    ^

Error: Cannot find module 'gulp-util'
    at Function.Module._resolveFilename (module.js:548:15)
    at Function.Module._load (module.js:475:25)
    at Module.require (module.js:597:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/usr/lib/nodejs/gulp/bin/gulp.js:4:13)
    at Module._compile (module.js:653:30)
    at Object.Module._extensions..js (module.js:664:10)
    at Module.load (module.js:566:32)
    at tryModuleLoad (module.js:506:12)
    at Function.Module._load (module.js:498:3)




動作環境は次の通りで、とくにシステム更新を怠っているわけでもなさそうです。

$ node --version
v13.2.0

$ npm --version
6.14.2

$ cat /etc/os-release 
NAME="Ubuntu"
VERSION="18.04.4 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.4 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic

しかし gulp のインストール位置を調べてみると何かがおかしいです。

$ which gulp 
/usr/bin/gulp

どうしてこうなるの?と少し調べてみると Ubuntu 18.04.4 LTS で gulp コマンドが見つからない場合、apt からインストールできるというメッセージが表示されるようです。

$ gulp --help

Command 'gulp' not found, but can be installed with:

sudo apt install gulp

その指示通りにインストールするとうまく動かなくなりますので、最初にやるべきことは(もしインストールされているならば)古いバージョンの gulp を消すことです。

$ sudo apt remove --purge gulp -y

それから公式ページの手順に従って現在の安定版をインストールして、インストール先のディレクトリにパスを通します。

$ npm i -g gulp-cli 
$ export PATH=$(npm config get prefix)/bin:$PATH
$ which gulp
/home/hoge/.npm-global/bin/gulp

$ gulp --version
CLI version: 2.2.0
Local version: Unknown

うまくインストールできましたら大丈夫なはずなので、~/.bashrc にでも PATH を付け足しておけばいつでも使えるようになるはずです。

Leave a Reply

Your email address will not be published. Required fields are marked *