2016-09-23 1 views
5

機能である必要があります見て、私のgulpfileです:ガルプエラー:タスクはここ

// Modules & Plugins 
var gulp = require('gulp'); 
var concat = require('gulp-concat'); 
var myth = require('gulp-myth'); 
var uglify = require('gulp-uglify'); 
var jshint = require('gulp-jshint'); 
var imagemin = require('gulp-imagemin'); 

// Styles Task 
gulp.task('styles', function() { 
    return gulp.src('app/css/*.css') 
     .pipe(concat('all.css')) 
     .pipe(myth()) 
     .pipe(gulp.dest('dist')); 
}); 

// Scripts Task 
gulp.task('scripts', function() { 
    return gulp.src('app/js/*.js') 
     .pipe(jshint()) 
     .pipe(jshint.reporter('default')) 
     .pipe(concat('all.js')) 
     .pipe(uglify()) 
     .pipe(gulp.dest('dist')); 
}); 

// Images Task 
gulp.task('images', function() { 
    return gulp.src('app/img/*') 
     .pipe(imagemin()) 
     .pipe(gulp.dest('dist/img')); 
}); 

// Watch Task 
gulp.task('watch', function() { 
    gulp.watch('app/css/*.css', 'styles'); 
    gulp.watch('app/js/*.js', 'scripts'); 
    gulp.watch('app/img/*', 'images'); 
}); 

// Default Task 
gulp.task('default', gulp.parallel('styles', 'scripts', 'images', 'watch')); 

私は一人でimagesscriptsまたはcssタスクを実行する場合、それは動作します。私は仕事にreturnを追加しなければならなかった - これは本にはなかったが、グーグルではこれが必要であることがわかった。

私が持っている問題は、defaultタスクエラーということである。

[18:41:59] Error: watching app/css/*.css: watch task has to be a function (optionally generated by using gulp.parallel or gulp.series) 
    at Gulp.watch (/media/sf_VM_Shared_Dev/webdevadvlocal/gulp/public_html/gulp-book/node_modules/gulp/index.js:28:11) 
    at /media/sf_VM_Shared_Dev/webdevadvlocal/gulp/public_html/gulp-book/gulpfile.js:36:10 
    at taskWrapper (/media/sf_VM_Shared_Dev/webdevadvlocal/gulp/public_html/gulp-book/node_modules/undertaker/lib/set-task.js:13:15) 
    at bound (domain.js:287:14) 
    at runBound (domain.js:300:12) 
    at asyncRunner (/media/sf_VM_Shared_Dev/webdevadvlocal/gulp/public_html/gulp-book/node_modules/async-done/index.js:36:18) 
    at nextTickCallbackWith0Args (node.js:419:9) 
    at process._tickCallback (node.js:348:13) 
    at Function.Module.runMain (module.js:444:11) 
    at startup (node.js:136:18) 

私はreturnウォッチタスクでもありませんので、それがあると思います。また、エラーメッセージは明確ではありません - 少なくとも私に。私は最後にgulp.watch()の後にreturnを追加しようとしましたが、それもうまくいきませんでした。

答えて

20

は一気3.xのでは、ちょうどこのようgulp.watch()にタスクの名前を渡すことができなかった:ゴクゴク4.xでは

gulp.task('watch', function() { 
    gulp.watch('app/css/*.css', ['styles']); 
    gulp.watch('app/js/*.js', ['scripts']); 
    gulp.watch('app/img/*', ['images']); 
}); 

は、これはもはやケースです。 には、関数を渡すのにがあります。 gulp 4.xでこれを行う習慣的な方法は、1つのタスク名だけを使ってgulp.series()呼び出しを渡すことです。

gulp.task('watch', function() { 
    gulp.watch('app/css/*.css', gulp.series('styles')); 
    gulp.watch('app/js/*.js', gulp.series('scripts')); 
    gulp.watch('app/img/*', gulp.series('images')); 
}); 
+0

偉大なそれを修正!迅速な答えをありがとう。 –

+1

一連の1つの機能...少し奇妙ではないですか? – MonsieurNinja

3

GULP-V4.0

今まだ、この権利に答えるために少し遅れている:これは、指定されたタスクを実行する関数を返します。私もこの問題に悩まされていました。私は時計が私のhtmlファイルでいくつかの変更に気づいたときにリロード機能を呼び出すために忘れてしまった

  1. 私が間違って何をやっていた詳細分析で Gulp structure

  2. 今すぐfireUpKeepWatchingの両方のタスクが必要であり、それらがブロックされているためです。それらは、連続的に開始するよりも、並行して開始する必要があります。だから私は、変数実行で並列関数を使用しました。
関連する問題