Глоток, заставить задачу использовать вывод другой задачи

Я создаю рабочий процесс с помощью Gulp для обработки электронной почты, и у меня возникли некоторые проблемы.

Мой файл gulp компилирует нефритовый файл в html, а затем я хочу запустить другую задачу в html-файле, который выводит эта задача. Я настроил его, как показано в коде ниже.

Проблема в том, что, несмотря на то, что в консоли написано, что задача «emailBuilder» запущена, она ничего не делает. Но если я запускаю «emailBuilder» отдельно после «gulp build», он делает то, что должен.

введите здесь описание изображения На изображении видно, что emailBuilder запускается последним, но все равно не делает того, что должен.

Как я могу сделать эту работу гладкой?

//-----------------------------------------------------
// ### REQUIREMENTS
//-------------------
var gulp          = require('gulp'),
    jade          = require('gulp-jade'),
    sass          = require('gulp-sass'),
    del           = require('del'),
    emailBuilder  = require('gulp-email-builder'),
    runSequence   = require('gulp-run-sequence');

//-----------------------------------------------------
// ### Clean
// `gulp clean`
//-------------------
// Clean our compiled folder before we generate new content into it
gulp.task('clean', function (cb) {
    del([
        // here we use a globbing pattern to match everything inside the `compiled` folder, except our gitkeep file
        'compiled/**/*',
        ], { dot: true },
    cb);
});

//-----------------------------------------------------
// ### Compile SCSS
// `gulp compile-css`
//-------------------
gulp.task('compile-scss', function () {
  gulp.src('./src/scss/*.scss')
    .pipe(sass().on('error', sass.logError))
    .pipe(gulp.dest('./compiled/css'));
});

//-----------------------------------------------------
// ### Build Jade templates
// `gulp templates`
//-------------------
gulp.task('templates', function() {
  var YOUR_LOCALS = {};

  gulp.src('./src/templates/*.jade')
    .pipe(jade({
        pretty: true,
        locals: YOUR_LOCALS
    }))
    .pipe(gulp.dest('./compiled/templates/'));
});

//-----------------------------------------------------
// ### Inline CSS, send tests
// `gulp compile-css`
//-------------------
 gulp.task('emailBuilder', function() {
    return gulp.src(['./compiled/templates/*.html'])
      .pipe(emailBuilder())
      .pipe(gulp.dest('./compiled/templates/'));
  });

//-----------------------------------------------------
// ### Build
// `gulp build` - Clean up the builds directory and do a complete build.
//-------------------
gulp.task('build', function(callback) {
  runSequence(
    'clean',
    'compile-scss',
    'templates',
    'emailBuilder',
  callback);
});

person Johan Dahl    schedule 08.12.2015    source источник
comment
Вы пытались сказать задаче emailBuilder дождаться завершения templates вот так gulp.task('emailBuilder', ['templates'], function() { ?   -  person DavidDomain    schedule 08.12.2015
comment
Да, не работает. emailBuilder не должен запускаться до тех пор, пока не будут выполнены все остальные шаги, и, глядя на консоль, это тоже происходит (добавлен скриншот). По какой-то причине мне все еще приходится запускать его отдельно после этапа сборки.   -  person Johan Dahl    schedule 08.12.2015
comment
Извините, не заметил, что вы уже выполняете свои задачи последовательно.   -  person DavidDomain    schedule 08.12.2015


Ответы (1)