Можно ли игнорировать файл с unCSS в Gulp?
Я искал через Google, чтобы найти способ сделать то, что я хочу, но не удалось.
Вот моя задница
gulp.task('less', function() {
return gulp.src('css/*.less')
.pipe(less())
.pipe(stripCssComments({
all: true
}))
.pipe(concat('main.css'))
.pipe(uncss({
html: ['index.html'],
ignore: [
'.visited',
'.ripple',
'.rippleEffect',
'.ripple2',
'.rippleEffect2',
'.rippleDrop', '.rippleDrop2',
'.ripple3',
'.rippleEffect3',
'.rippleDrop3',
'.slide'
]
}))
.pipe(minifyCSS())
.pipe(gulp.dest('build/css'))
});
Как видите, у меня уже есть много классов, которые нужно игнорировать. Но становится все хуже с моими новыми CSS-фреймворками, в которых есть десятки классов, вызываемых javascript (поэтому uncss сотрет их). Вместо того, чтобы помещать 30 классов в мой параметр игнорирования, я хотел бы просто игнорировать.css, который содержит динамические классы.
Дело в том, что я все еще хочу, чтобы мой файл events.css был конкатенирован с остальными css, поэтому он должен идти по конвейеру (я хочу один файл.css для всего моего веб-сайта).
Или я должен сделать вторую функцию.less, которая объединит файлы uncss с файлами не-uncss? Я не уверен, что лучший способ добиться того, чего я хочу
1 ответ
Последний пункт на самом деле тот, который нужно выполнить, но вам не нужно выполнять две функции, вы просто можете использовать объединение потоков:
var merge = require('merge2');
gulp.task('less', function() {
var streamMain = gulp.src(['css/*.less', '!css/events.less'])
.pipe(less())
.pipe(stripCssComments({
all: true
}))
.pipe(uncss({
html: ['index.html']
}));
var streamEvents = gulp.src('css/events.less')
.pipe(less())
.pipe(stripCssComments({
all: true
}));
return merge(streamMain, streamEvents)
.pipe(concat('main.css'))
.pipe(minifyCSS())
.pipe(gulp.dest('build/css'));
});
В Gulp плагины должны делать только одно. Все, что связано с обработкой файлов, на самом деле в ваших руках:-)