Как в gulp работает слияние потоков (stream merge)

469
24 ноября 2016, 10:13

Для процессинга CSS я использую gulp с autoprefixer и doIuse. Потребовалось добавить к стилям файл стороннего разработчика, причем так, чтобы он включался без изменений. Но в итоге все стили должны были упаковываться в один файл style.css, и для них должны были создаваться sourcemaps.

Я сделал так:

gulp.task('css', function() {
    var plugins = getPlugins();
    var processors = [
        plugins.precss,
        plugins.autoprefixer,
        plugins.doiuse
    ];
    // мой css, должен пройти через autoprefixer
    var my_css = gulp.src([ ... my css files ... ])
        .pipe(plugins.sourcemaps.init())
        .pipe(plugins.postcss(processors))
    ;
    // сторонний css, должен остаться как есть, но нужны sourcemaps
    var third_party = gulp.src([ ... third party css files ... ])
        .pipe(plugins.sourcemaps.init())
    ;
    return plugins.merge2(third_party, my_css)
        .pipe(plugins.concat('style.css'))
        .pipe(plugins.sourcemaps.write('./'))
        .pipe(gulp.dest('web/css'))
    ;
});

Я не был уверен, что получится, но это сработало. Однако я так и не понял, как именно это работает? Почему после merge и concat правильно создаются sourcemaps?

Хотелось бы понять, как работает слияние потоков в gulp.

READ ALSO
Кастомный класс селекта для DateTimeType на Symfony 3

Кастомный класс селекта для DateTimeType на Symfony 3

Доброго всем времени суток. Я кастомизирую форму, сгенерированную автоматически с помощью генератора CRUD.

341
Задний фон подбивался под размеры

Задний фон подбивался под размеры

Всем доброго времени суток. На сайте есть "шапка",фон белый.

350
CSS 1. Как можно полностью обновить страницу. 2. Как выровнять текст вертикально?

CSS 1. Как можно полностью обновить страницу. 2. Как выровнять текст вертикально?

У вас на скриншотах css код, который потом в итоге на поздних этапах разработки загонит в вас не то, что в угол, а в бездну, из которой вы не сможете...

306
Наименование классов по БЭМ

Наименование классов по БЭМ

Как правильно задать имена классов по методологии БЭМ для следующего кода:.

701