Условные глотки
Я немного озадачен тем, как лучше настроить условные выражения в файле 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)
).
Возможно, вы получили правильный ответ, я просто делюсь, чтобы другие зрители знали.