始めての投稿です。
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.jsとgulpのバージョンを下げる。
- Node.js 12.13.0
- gulp 4.0.3
↓
- Node.js 11.15.0
- gulp 3.9.1
Node.jsのバージョンの下げ方は、
qiita.rb
$npminstall-gn
を実行した後に、
qiita.rb
$sudon11.15.0
gulpのバージョンの下げ方は、
qiita.rb
$sudonpminstall--save-devgulp@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の解決方法でした。