吞咽的条件

时间:2015-07-29 08:09:44

标签: node.js conditional gulp conditional-statements gulp-if

我对如何在gulp文件中最好地设置条件感到困惑,并且可以使用一些说明。

我是否正确,你不能在管道链中做普通的if语句?如果可以的话,你会怎么输入?

现在我正在使用gulp-if做这样的事情:

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

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

但是,这两个块最好是在同一条件下。这可能吗?我无法解决这个问题。

2 个答案:

答案 0 :(得分:3)

您可以使用lazypipe进行minifyrename转换。它会是这样的:

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

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

答案 1 :(得分:1)

基于https://www.npmjs.com/package/lazypipe

minifyAndRenameCSS应该是:

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

管道内不应该有任何函数调用。如果函数需要一些参数,用逗号分隔它们(即.pipe(myFunc, arg1, arg2))。

也许你现在得到了正确的答案,我只是分享,以便其他观众知道。