Потерянные файлы с помощью gulp-clean

Я только начал работать с gulp и не совсем понимаю некоторые вещи. Вот мой глоток

gulp.task('css', function(){
  var processors = [
    csswring({
      removeAllComments: true
    })
  ];

  gulp.src(['css/**/*.css', '!css/reset.css'])
    .pipe(concat('withoutReset.css'))
    .pipe(gulp.dest('./tmp'));

  return gulp.src(['css/reset.css', 'tmp/withoutReset.css'])
    .pipe(sourcemaps.init())
    .pipe(concat('style.css'))
    .pipe(postcss(processors))
    .pipe(sourcemaps.write('/map/style'))
    .pipe(gulp.dest('public/css'));
});

gulp.task('main', ['css'], function() {
  return gulp.src('tmp', {read: false})
    .pipe(clean());
});

gulp.task('default', ['main']);

Когда я запускаю эту задачу в public/css/style.css, я получаю просто минимизированный файл сброса без всего остального, но если я прокомментировал чистую строку, все работает нормально.

Я думал, что style.css должен быть создан перед запуском чистой задачи, это не так?

Как я могу заставить его работать нормально, не меняя структуру папок, это означает, что файл сброса может быть на одном уровне с каким-то другим, который также должен следовать за ним (строки сброса всегда должны быть первыми)

И будет хорошо, если вы объясните или пришлете ссылку, где я могу прочитать, почему это не работает с текущим кодом.


person Naitro    schedule 26.10.2014    source источник
comment
Второй gulp.src в задаче css не ждет завершения первого gulp.src. В чем причина записи tmp файлов туда?   -  person Heikki    schedule 26.10.2014


Ответы (1)


Мне стыдно!(

Спасибо @Heikki - это была проблема с асинхронностью, поэтому я поместил конкатенацию в отдельную задачу (думаю, что она существует, чтобы сделать это в одной задаче, но я только начинаю), и это работает хорошо)

person Naitro    schedule 26.10.2014
comment
Чтобы сделать это в одной задаче, .pipe соедините два конвейера вместе, не переходя в 'tmp'. В этом весь смысл gulp/pipelines. Нет необходимости во временных вещах. - person spelufo; 28.12.2014