Условные глотки

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

Прав ли я в том, что вы не можете делать обычные операторы внутри цепочки труб? Если вы можете, как бы вы набрали это?

Прямо сейчас я использую gulp-if, чтобы сделать что-то вроде этого:

// Minify
.pipe( gulpif(env === 'production',
    minifyCSS({keepSpecialComments:0,})
))

// Rename
.pipe( gulpif(env === 'production',
    rename({suffix: '.min'})
))

Но эти два блока были бы оптимально внутри одного и того же условия. Это возможно? Я не могу заставить это работать.

2 ответа

Решение

Вы могли бы использовать Lazypipe для minify а также rename трансформирует. Это было бы что-то вроде этого:

var minifyAndRenameCSS = lazypipe()
  .pipe(minifyCSS({keepSpecialComments:0})
  .pipe(rename({suffix: '.min'}));

gulp.task('build', function() {
  return gulp.src('*.css')
    .pipe(gulpif(env === 'production', minifyAndRenameCSS()))
});

База на https://www.npmjs.com/package/lazypipe

minifyAndRenameCSS должно быть:

var minifyAndRenameCSS = lazypipe()
  .pipe(minifyCSS, {keepSpecialComments: 0})
  .pipe(rename, {suffix: '.min'});

Не должно быть никаких вызовов функций внутри каналов. Если функции нужны некоторые аргументы, разделите их запятыми (т.е. .pipe(myFunc, arg1, arg2)).

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

Другие вопросы по тегам