Help us understand the problem. What is going on with this article?

Gulp環境構築にて「AssertionError [ERR_ASSERTION]: Task function must be specified」の原因はgulp v4にバージョンアップした事による仕様変更

More than 1 year has passed since last update.

始めての投稿です。
1. エラー内容、背景
2. 環境
3. 解決方法
4. 原因
の順に記載して行きます。

1. エラー内容、背景

gulpにてSassを自動コンパイルしたかったため、Homebrew、Node.js、gujpをインストール。
gulp自動監視を起動しようと、コマンド実行すると、

qiita.rb
'AssertionError [ERR_ASSERTION]: Task function must be specified'

と言うエラーが。

2. 環境

mac

  • npm 6.7.0
  • Node.js 12.13.0
  • CLI 2.2.0
  • gulp 4.0.3

3. 解決方法

Node.jsgulpのバージョンを下げる。

  • Node.js 12.13.0
  • gulp 4.0.3

  ↓

  • Node.js 11.15.0
  • gulp 3.9.1

Node.jsのバージョンの下げ方は、

qiita.rb
$ npm install -g n

を実行した後に、

qiita.rb
$ sudo n 11.15.0

参考:Node.jsのバージョンを管理するライブラリ「n」

gulpのバージョンの下げ方は、

qiita.rb
$ sudo npm install --save-dev gulp@3.9.1

4. 原因

①gulpのバージョンが4に上がったことにより、gulpfile.jsのgulp.task()の引数の指定方法が変わった。
 gulp v4へのバージョンアップによる変更点などはこちらのページがわかりやすくまとめられています。
 gulp v4.0.0がプレリリース! 移行方法と変更点まとめ
②gulp v3とNode.js v12の組み合わせは動かない
 gulp v3とNode.js v12で実行した場合、

qiita.rb
puts 'ReferenceError: primordials is not defined'

 と言うエラーが。
 すみませんが、v12ではなぜ動かないのかはわからず、以下のページを参考にし、11.15.0だと動くことを確認しました。
 参考:ReferenceErrorを修正する方法

以上、AssertionError [ERR_ASSERTION]: Task function must be specifiedの解決方法でした。

shun_kominato
整骨院→SES社3年→フリーランス2年 | VueとNode.jsで顔認証と音声認識を使用した研究開発、ブロックチェーン技術を使用したAI機械学習の研究開発をしています。また、個人でスマホアプリ開発やWEBサービスを受注しています。特に自分が詰まったところや残しておきたいことなどを投稿して行きます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away