Можно ли игнорировать файл с 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 плагины должны делать только одно. Все, что связано с обработкой файлов, на самом деле в ваших руках:-)

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