Использование gulp.src () для включения всех файлов, КРОМЕ файлов js, КОТОРЫХ НЕТ в каталоге сторонних разработчиков

#gulp

#gulp

Вопрос:

Я пытаюсь скопировать все файлы, КРОМЕ файлов js, которых нет в каталоге 3rd .

Это то, что я делал:

 return gulp.src([
        'src/**/*',
        '!src/**/*.js', // no js files from src
        'src/**/3rd/*.js' // make sure to get 3rd party js files though
    ])
    .pipe(gulp.dest('dist'));
  

Однако это не привело бы к копированию КАКИХ-либо js-файлов: (

Ответ №1:

В gulp 3.x глобусы, переданные в gulp.src() , не оцениваются по порядку. Это означает, что невозможно исключить набор файлов, а затем повторно включить подмножество исключенных файлов.

Это станет возможным с предстоящим выпуском gulp 4.0:

глобусы, переданные в gulp.src, будут оцениваться по порядку, что означает, что это возможно gulp.src(['*.js', '!b*.js', 'bad.js'] ) (исключите каждый файл JS, который начинается с b except bad.js )

Для gulp 3.x есть gulp-src-ordered-globs пакет, который можно использовать вместо обычного gulp.src() :

 var gulpSrc = require('gulp-src-ordered-globs');

return gulpSrc([
    'src/**/*',
    '!src/**/*.js', // no js files from src
    'src/**/3rd/*.js' // make sure to get 3rd party js files though
  ])
  .pipe(gulp.dest('dist'));
  

Комментарии:

1. Спасибо Sven за это!