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.
Заранее спасибо за любые подсказки в правильном направлении!