gulp 中的条件句
Conditionals in gulp
我对如何在 gulp 文件中最好地设置条件有些困惑,需要一些说明。
你不能在管道链中执行普通的 if 语句,我说得对吗?如果可以,你会怎么打出来?
现在我正在使用 gulp-if 来做这样的事情:
// Minify
.pipe( gulpif(env === 'production',
minifyCSS({keepSpecialComments:0,})
))
// Rename
.pipe( gulpif(env === 'production',
rename({suffix: '.min'})
))
但是,这两个块最好在同一个 if 条件内。这可能吗?我无法让它工作。
您可以将 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)
)。
也许你现在已经有了正确的答案,我只是为了让其他观众知道。
我对如何在 gulp 文件中最好地设置条件有些困惑,需要一些说明。
你不能在管道链中执行普通的 if 语句,我说得对吗?如果可以,你会怎么打出来?
现在我正在使用 gulp-if 来做这样的事情:
// Minify
.pipe( gulpif(env === 'production',
minifyCSS({keepSpecialComments:0,})
))
// Rename
.pipe( gulpif(env === 'production',
rename({suffix: '.min'})
))
但是,这两个块最好在同一个 if 条件内。这可能吗?我无法让它工作。
您可以将 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)
)。
也许你现在已经有了正确的答案,我只是为了让其他观众知道。