2015-09-16 14 views
6

実行コードは以下のコードはかなり動作していませんか?runSequenceがgulpと連携していませんか?

var gulp = require('gulp'); 
var del = require('del'); 
var browserify = require('gulp-browserify'); 
var concat = require('gulp-concat'); 
var runSequence = require('run-sequence'); 
var nodemon = require('gulp-nodemon'); 

gulp.task('clean', function(cb) { 
    console.log('YOLO1'); 
    del(['build/*'], cb); 
}); 

gulp.task('copy', function() { 
console.log('YOLO2') 
return gulp.src('client/www/index.html') 
    .pipe(gulp.dest('build')); 
}); 

gulp.task('browserify', function() { 
    console.log('YOLO3') 
    return gulp.src('client/index.js') 
    .pipe(browserify({transform: 'reactify'})) 
    .pipe(concat('app.js')) 
    .pipe(gulp.dest('build')); 
}); 

gulp.task('build', function(cb) { 
    console.log('YOLO4') 
    runSequence('clean', 'browserify', 'copy', cb); 
}); 

gulp.task('default', ['build'], function() { 
    gulp.watch('client/*/*', ['build']); 
    nodemon({ script: './bin/www', ignore: ['gulpfile.js', 'build', 'client', 'dist'] }); 
}); 

電流出力:

YOLO4, 
YOLO1 

所望の出力:

YOLO4, 
YOLO1, 
YOLO3, 
YOLO2 

runSequenceのみ最初のタスクを実行し、残りの部分を実行することができない理由は、私がわかりませんか?何か案は?

答えて

8

del は、コールバックを取るが、同期返していません:この答えはフレームや壁に設置する必要が

gulp.task('clean', function() { 
    console.log('YOLO1'); 
    return del(['build/*']); 
}); 
+1

https://github.com/gulpjs/gulp/blob/master/docs/recipes/delete-files-folder.mdの最初のサンプルを参照してください)。彼らは最近、 'del'の振る舞いを変えました(約束を使って、コールバックはもうない)ので、多くのタスクを更新する必要があります。 – zeh

関連する問題