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 を付け足しておけばいつでも使えるようになるはずです。
