gulp4でTypeErrorがでるときはgulp-cliが原因

gulp4を使用しているプロジェクトをnpm installから展開し、gulpのdefaultタスクを実行しようとすると
このようなエラーがでました。

<br />
$ gulp<br />
[xx:xx:24xx Using gulpfile /xxx/gulpfile.js<br />
/Users/xxx/.nodebrew/node/v6.1.0/lib/node_modules/gulp/bin/gulp.js:129<br />
    gulpInst.start.apply(gulpInst, toRun);<br />
                  ^</p>
<p>TypeError: Cannot read property 'apply' of undefined<br />
    at /Users/xxx/.nodebrew/node/v6.1.0/lib/node_modules/gulp/bin/gulp.js:129:19<br />
    at _combinedTickCallback (internal/process/next_tick.js:67:7)<br />
    at process._tickCallback (internal/process/next_tick.js:98:9)<br />
    at Function.Module.runMain (module.js:577:11)<br />
    at startup (node.js:160:18)<br />
    at node.js:445:3<br />

調べてみると、gulp4とgulp-cliのバージョンが噛み合わないと出るエラーだと判明。

<br />
$ gulp -v<br />
[XX:XX:XX] CLI version 3.9.1<br />
[XX:XX:XX] Local version 4.0.0-alpha.2<br />

とりあえず、gulp-cliのバージョンを上げてみました。

<br />
$ sudo npm install -g gulp-cli<br />

<br />
$ gulp -v<br />
[xx:xx:xx] CLI version 1.3.0<br />
[xx:xx:xx] Local version 4.0.0-alpha.2<br />

これで解決。
gulpのタスクも実行できるようになりました。

<br />
$ gulp<br />
[xx:xx:xx] Using gulpfile /xx/gulpfile.js<br />
[xx:xx:xx] Starting 'default'...<br />

関連記事