Условно игнорировать файлы в gulp.src
Исходный код используется для 2 проектов, каждый проект имеет некоторый общий код. Я хочу условно игнорировать модуль / папку / каталог с помощью задачи gulp.
Когда я следую, это работает отлично
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)))
1 ответ
Решение
Ваш gulpfile - это просто JavaScript, поэтому вы можете использовать троичный оператор для условного исключения файлов в 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{, /**}
а также - Вы подаете заявку
$.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'));
});