Исключить файлы из потока Gulp, если содержимое содержит строку - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть задача gulp, которая выглядит следующим образом:

    return src(['storage/framework/views/*.php'])
        .pipe(htmlmin({
            collapseWhitespace: true,
        }))
        .pipe(dest('storage/framework/views'));

Она берет скомпилированные представления из Laravel и передает их через htmlmin.

Это прекрасно работает для HTML представлений, но портит содержимое представлений Markdown.

К сожалению, я не могу добавить исключение в src([...]), потому что все имена файлов - это хэши. Мне нужно иметь возможность проверить содержимое файла и исключить файл, если файл содержит mail::message.

. Попытка решить это самостоятельно, gulp-содержит , но это только Кажется, может выдать ошибку, если файл содержит данную строку. Я не могу найти способ использовать его обратный вызов для исключения файла.

Существует также gulp-ignore , но, похоже, он не может исключить отдельные файлы из поток.

Предполагается, что есть три файла шаблона, где y.php - шаблон уценки. Идеальным решением было бы что-то вроде:

    return src(['storage/framework/views/*.php']) // [x.php, y.php, z.php]
        .pipe(exclude_files_containing('mail::message')) // [x.php, z.php]
        .pipe(htmlmin({
            collapseWhitespace: true,
        }))
        .pipe(dest('storage/framework/views'));

1 Ответ

1 голос
/ 21 апреля 2020

Использование gulp-filter

const filter = require('gulp-filter');

gulp.task("TaskExample", function () {

  // return true if want the file in the stream
  // return file to exclude the file

  const excludeMessageFilter = filter(function (file) {

    let contents = file.contents.toString();
    return !contents.match('mail::message');
  });

  return gulp.src('storage/framework/views/*.php')

    .pipe(excludeMessageFilter)

    // .pipe(htmlmin(...
    // .pipe(gulp.dest('''''''));
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...