gulp エラー。タスク関数を指定する必要があります
2022-02-10 20:58:56
案内
実行する
gulp task_name
は、次のようなメッセージでエラーを報告します。
assert.js:350
throw err;
^
AssertionError [ERR_ASSERTION]: Task function must be specified
at Gulp.set [as _setTask] (D:\me\gulp\gulp-test\node_modules\[email protected]@undertaker\lib\set-task.js:10:3)
at Gulp.task (D:\me\gulp\gulp-test\node_modules\[email protected]@undertaker\lib\task.js:13:8)
at Object.<anonymous> (D:\me\gulp\gulp-test\gulpfile.js:11:6)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
原因を分析する
- gulpのバージョン4へのアップグレードにより、バージョン4とバージョン3の実行方法に若干の違いが生じる
-
連続したタスクリストを処理する際に
series()
メソッドを使用します。
const { series } = require('gulp');
function javascript(cb) {
// body omitted
cb();
}
function css(cb) {
// body omitted
cb();
}
exports.build = series(javascript, css);
比較する
gulp3
と
gulp4
Gulp3では、順番に実行したい(Bが始まる前にAが終了し、Cが始まる前にBが終了することを確認する)タスクA、B、Cのリストがある場合、次のようなコードになります。
gulp.task('a', function () {
// Do something.
});
gulp.task('b', ['a'], function () {
// Do some stuff.
});
gulp.task('c', ['b'], function () {
// Do some more stuff.
});
Gulp 4では、このようなことはもうできません。これからは
gulp.series
と
gulp.parallel
のように、gulpタスクは2つの引数しか持たなくなりました。
gulp.series
: 順番に実行するgulp.paralle
並列計算が可能
gulp.task('my-tasks', gulp.series('a', 'b', 'c', function() {
// Do something after a, b, and c are finished.
}));
gulp.task('build', gulp.parallel('styles', 'scripts', 'images', function () {
// Build the website.
}));
gulp.task('my-tasks', gulp.series('a', gulp.parallel('styles', 'scripts', 'images'), 'b', 'c', function() {
// Do something after a, b, and c are finished.
}));
あるいは、次のように使うこともできる。
gulp.task('my-tasks', gulp.series('a', gulp.parallel('styles', 'scripts', 'images'), 'b', 'c', function() {
// Do something after a, b, and c are finished.
}));
関連
-
vueプロジェクトの起動に失敗しました。ENOENT: no such file or directory, open 'E:\CordovaProjectpackage.json'.
-
Vue-npm ERR! コード ENOENT エラーの解決方法など
-
Ubuntu 20 nvmのインストールの問題(コマンドが見つからない)
-
UnhandledPromiseRejectionWarning:EACCES: 権限拒否エラー(npmでdevを実行した場合)に対する有効な解決策の可能性
-
Mac ノードのバージョニング nvm コマンドが見つかりません。
-
npm install時にundefinedのプロパティを読み込めない('extraneous'を読み込む)。
-
Node.jsのエラーの解決策。Cannot find module express
-
エラーは正常に解決されました。モジュール 'html-webpack-plugin' が見つかりません。
-
Error: Cannot find module '.... /lib/utils/unsupported.js'。
-
Ejsエラーです。デフォルトエンジンが指定されておらず、拡張子も提供されていません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン