如何使用 gulp-if 退出任务
How to exit a task with gulp-if
我有一个处理图像的 gulp 4 任务。首先它缩小它们,如果满足条件,SVG 应该变成 PHP 部分。如果不满足,我如何实现这样的条件并停止任务。
function processImages() {
return src(src)
.pipe(
imagemin([
imagemin.gifsicle({
interlaced: true,
}),
imagemin.jpegtran({
progressive: true,
}),
imagemin.optipng({
optimizationLevel: 3,
}),
imagemin.svgo({
plugins: [
{
removeViewBox: false,
},
{
cleanupIDs: false,
},
],
}),
]),
)
.pipe(dest(dest))
// STOP AFTER THIS STEP IF CONDITION IS NOT MET
.pipe(gulpif(!shouldCreatePartials(), exit()))
.pipe(filter(file => /svg$/.test(file.path)))
.pipe(
rename({
extname: '.php',
}),
)
.pipe(dest(partialsDest));
}
参见 gulp-fail - 看起来它是为与 gulp-if.
一起工作而设计的
var fail = require('gulp-fail');
var gulpIf = require('gulp-if');
var condition = true;
// Will fail with the given message shown as the reason.
gulp.task('mytask', function() {
return gulp.src('**/*.js')
.pipe(gulpIf(condition, fail("It failed cause I told it to! ...Hooray?")));
})
最后我的解决方案是简单地将 dest() 包装在一个 if 中。
function processImages() {
return src(src)
.pipe(imagemin(),)
.pipe(dest(dest))
.pipe(gulpif(shouldCreatePartials(), filter(file => /svg$/.test(file.path))))
.pipe(gulpif(shouldCreatePartials(), rename({
extname: '.php',
})))
.pipe(gulpif(shouldCreatePartials(), dest(partialsDest)));
}
我有一个处理图像的 gulp 4 任务。首先它缩小它们,如果满足条件,SVG 应该变成 PHP 部分。如果不满足,我如何实现这样的条件并停止任务。
function processImages() {
return src(src)
.pipe(
imagemin([
imagemin.gifsicle({
interlaced: true,
}),
imagemin.jpegtran({
progressive: true,
}),
imagemin.optipng({
optimizationLevel: 3,
}),
imagemin.svgo({
plugins: [
{
removeViewBox: false,
},
{
cleanupIDs: false,
},
],
}),
]),
)
.pipe(dest(dest))
// STOP AFTER THIS STEP IF CONDITION IS NOT MET
.pipe(gulpif(!shouldCreatePartials(), exit()))
.pipe(filter(file => /svg$/.test(file.path)))
.pipe(
rename({
extname: '.php',
}),
)
.pipe(dest(partialsDest));
}
参见 gulp-fail - 看起来它是为与 gulp-if.
一起工作而设计的var fail = require('gulp-fail');
var gulpIf = require('gulp-if');
var condition = true;
// Will fail with the given message shown as the reason.
gulp.task('mytask', function() {
return gulp.src('**/*.js')
.pipe(gulpIf(condition, fail("It failed cause I told it to! ...Hooray?")));
})
最后我的解决方案是简单地将 dest() 包装在一个 if 中。
function processImages() {
return src(src)
.pipe(imagemin(),)
.pipe(dest(dest))
.pipe(gulpif(shouldCreatePartials(), filter(file => /svg$/.test(file.path))))
.pipe(gulpif(shouldCreatePartials(), rename({
extname: '.php',
})))
.pipe(gulpif(shouldCreatePartials(), dest(partialsDest)));
}