有条件地忽略 gulp.src 中的文件
Conditionally Ignore files in gulp.src
源代码用于2个项目,每个项目都有一些通用代码。
我想通过 gulp 任务有条件地忽略 module/folder/directory。
当我遵循它时,它完美无缺
return gulp.src(
config.appMarkupFiles
'!app/settings', '!app/settings/**'
)
但是,我想有条件地去做。
我还使用 gulp-filter 尝试了以下代码,但对我不起作用。
var isQA = $.yargs.argv.stage === 'qa';
var filterSettings = $.filter(['!app/settings{, /**}'])
return gulp.src(
config.appMarkupFiles
)
.pipe(($.if(isQA,$.filter(filterSettings)))
你的 gulpfile 只是 JavaScript 所以你可以使用 ternary operator 有条件地排除 gulp.src()
:
中的文件
var isQA = $.yargs.argv.stage === 'qa';
gulp.task('default', function() {
return gulp.src([config.appMarkupFiles].concat((isQA) ? ['!app/settings{,/**}'] : []))
.pipe(gulp.dest('dist'));
});
使用 gulp-filter
有效,但您的代码中有两个错误:
!app/settings{, /**}
和 中有不必要的 space
- 您正在申请
$.filter
两次。
这是一个使用 gulp-filter
的有效解决方案:
var isQA = $.yargs.argv.stage === 'qa';
gulp.task('default', function() {
return gulp.src(config.appMarkupFiles)
.pipe($.if(isQA, $.filter(['!app/settings{,/**}'])))
.pipe(gulp.dest('dist'));
});
源代码用于2个项目,每个项目都有一些通用代码。 我想通过 gulp 任务有条件地忽略 module/folder/directory。
当我遵循它时,它完美无缺
return gulp.src(
config.appMarkupFiles
'!app/settings', '!app/settings/**'
)
但是,我想有条件地去做。 我还使用 gulp-filter 尝试了以下代码,但对我不起作用。
var isQA = $.yargs.argv.stage === 'qa';
var filterSettings = $.filter(['!app/settings{, /**}'])
return gulp.src(
config.appMarkupFiles
)
.pipe(($.if(isQA,$.filter(filterSettings)))
你的 gulpfile 只是 JavaScript 所以你可以使用 ternary operator 有条件地排除 gulp.src()
:
var isQA = $.yargs.argv.stage === 'qa';
gulp.task('default', function() {
return gulp.src([config.appMarkupFiles].concat((isQA) ? ['!app/settings{,/**}'] : []))
.pipe(gulp.dest('dist'));
});
使用 gulp-filter
有效,但您的代码中有两个错误:
!app/settings{, /**}
和 中有不必要的 space
- 您正在申请
$.filter
两次。
这是一个使用 gulp-filter
的有效解决方案:
var isQA = $.yargs.argv.stage === 'qa';
gulp.task('default', function() {
return gulp.src(config.appMarkupFiles)
.pipe($.if(isQA, $.filter(['!app/settings{,/**}'])))
.pipe(gulp.dest('dist'));
});