Условия в глътка

Малко съм объркан относно това как най-добре да настроя условни изрази в gulp файл и бих могъл да се възползвам от някои пояснения.

Прав ли съм, че не можете да правите обикновени изрази if вътре в канална верига? Ако можете, как бихте го написали?

В момента използвам gulp-if, за да направя нещо подобно:

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

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

Но тези два блока оптимално биха били в едно и също условие if. Това възможно ли е? Не мога да накарам това да работи.


person Johan Dahl    schedule 29.07.2015    source източник


Отговори (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()))
});
person Eloy Pineda    schedule 29.07.2015

Базирайте се на https://www.npmjs.com/package/lazypipe

minifyAndRenameCSS трябва да бъде:

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

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

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

person CRIS    schedule 28.01.2016