Ответ 1
Из Node документов:
https://nodejs.org/api/stream.html#stream_readable_pipe_destination_options
Метод readable.pipe() присоединяет записываемый поток к читаемому, заставляя его автоматически переключаться в потоковый режим и выталкивать все свои данные в прикрепленный Writable. Поток данных будет автоматически управляться, чтобы поток Writable назначения не был перегружен более быстрым Readable stream.
Итак, в Gulp вы можете объединить несколько задач вместе с помощью метода pipe()
. Gulp использует потоки. Есть читаемые и записываемые потоки. Возьмите следующий фрагмент, например:
gulp.src(config.jsSrc)
.pipe(uglify())
.pipe(gulp.dest(config.dest + '/js'))
.pipe(size());
gulp.src(...)
превращает путь в config.jsSrc
в читаемый поток данных, который мы затем соединяем с модулем gulp-uglify
. Задача uglify возвращает поток, который мы затем связываем с нашим пунктом назначения и так далее...