gulp-useref: выборочный transformStream для удаления начальной загрузки создает недопустимые выходные файлы

Я использую gulp-useref объединить и минимизировать мои активы скрипта. Поскольку мой проект включает в себя некоторые bootstrap Стили, которые я хотел бы удалить все ненужные части этого. Для этого я интегрировал gulp-purifycss плагин. Я сейчас пытался использовать gulp-useref"s transformStream способность выборочно очищать только bootstrap.css, что приводит к неверным выходным файлам как для моего минимизированного JavaScript, так и для CSS. Например, созданный файл javascript также содержит все bootstrap.css и файл CSS содержит только около двух строк моего собственного CSS.

Вот мое задание глотка:

var gulp = require('gulp');
var $ = require('gulp-load-plugins')();
var htmlminOpts = {
  collapseWhitespace: true,
  removeComments: true,
  removeRedundantAttributes: true,
  removeScriptTypeAttributes: true,
  minifyJS: true,
  minifyCSS: true
};
var cssminOpts = {
  keepSpecialComments: 0
};

// ...

gulp.task('scripts:public', function() {
  return gulp.src('client/public/index.html')
    .pipe($.useref({
      searchPath: ['client/public', './']
    }, require('lazypipe')().pipe($.if, function(file) {
      return file.path.indexOf('bootstrap.css') > -1;
    }, $.purifycss(['client/public/**/*.html']))))
    .pipe($.if('**/bower_components/**/*.js', $.fixmyjs()))
    .pipe($.if('*.js', $.uglify().on('error', $.util.log)))
    .pipe($.if('*.html', $.htmlmin(htmlminOpts)))
    .pipe($.if('*.css', $.cssmin(cssminOpts)))
    .pipe(gulp.dest('../dist/client/public'));
});

Вероятно, я использую transformStream неправильно, однако документация довольно скудна в этом отношении, поскольку она только говорит мнеTransform assets before concat., что было бы точно, что я хочу: Transform bootstrap.css с помощью purifycss прежде чем он будет объединен с моим собственным CSS.

Заранее спасибо за любые подсказки в правильном направлении!

0 ответов

Другие вопросы по тегам