gulp中的条件句



我对如何在gulp文件中最好地设置条件有点困惑,可以使用一些澄清。

你不能在管道链内做普通的if语句,我是对的吗?如果可以,你会怎么打出来?

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

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

但是,这两个块最好在同一个if条件中。这可能吗?我不能让它工作

您可以对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()))
});

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

minifyAndRenameCSS应为:

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

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

也许你现在已经得到了正确的答案,我只是分享给其他观众,让他们知道。

相关内容

  • 没有找到相关文章