2015-11-06 2 views
0

У меня есть 4 задачи для очистки сборки, создания стилей & javascripts и создания манифеста. Моя задача по умолчанию выглядит так:Задачи Gulp не работают последовательно

gulp.task('default', function(callback) { 
    runSequence('clean', ['styles', 'scripts'], 'version', callback); 
}); 

Таким образом, это работает отлично, но задачи «версии». Он ничего не создает и не имеет никакого эффекта.

gulp.task('version', function() { 

    gulp.src(utils.dst('**/*')) 

     // create content hashed filenames 
     .pipe(rev()) 
     .pipe(gulp.dest(utils.dst())) 

     // create asset manifest 
     .pipe(rev.manifest()) 
     .pipe(gulp.dest(utils.dst())) 

}); 

Если я бегу делают gulp clean; gulp styles; gulp scripts; gulp version; от версии задачи будут создавать желаемый манифест активов.

Это выход выполняемой задачи по умолчанию:

Starting 'default'... 
Starting 'clean'... 
Finished 'clean' after 6.87 ms 
Starting 'styles'... 
Finished 'styles' after 7.63 ms 
Starting 'scripts'... 
Finished 'scripts' after 2.96 ms 
Starting 'version'... 
Finished 'version' after 2.25 ms 
Finished 'default' after 22 ms 

У любого увидеть ошибку, что я делаю? Возможно, активы сборки еще не созданы, когда я запускаю задачу с версией, но именно поэтому я заставил задачи запускаться последовательно.

Любые предложения, как я мог бы решить проблему?

+1

Возможный дубликат [Выполнение задач Gulp в последовательности не работает] (http://stackoverflow.com/questions/33240780/running-gulp-tasks-in-sequence-does-not-seem-to-work) – Louis

ответ

0

Вы должны возвратить поток примерно так:

gulp.task('version', function() { 

    return gulp.src(utils.dst('**/*')) 

     // create content hashed filenames 
     .pipe(rev()) 
     .pipe(gulp.dest(utils.dst())) 

     // create asset manifest 
     .pipe(rev.manifest()) 
     .pipe(gulp.dest(utils.dst())) 

}); 

В противном случае глоток не может знать, если ваша задача закончена или нет!

Смежные вопросы