Почему я должен использовать поток с виниловым источником с gulp?

Я пытаюсь использовать gulp и браунировать, чтобы преобразовать файлы .jsx в файлы .js.

var gulp = require('gulp');
var browserify = require('browserify');
var reactify = require('reactify');

gulp.task('js', function () {
  browserify('public/javascripts/src/app.jsx')
    .transform(reactify)
    .bundle()
    .pipe(gulp.dest('public/javascripts/dist'))
});

`` `

Вышеупомянутый бросил Arguments to path.resolve must be strings. Мне удалось обойти это, используя vinyl-source-stream

var source = require('vinyl-source-stream');
...
.bundle()
.source('app.js')
...

Почему это работает? Я новичок в nodejs и gulp. Прочитав README проекта и исходный код, я все еще запутался. Любая помощь?

Ответ 1

Мне кажется, что чтение этой статьи gulp Видение, история и будущее проекта помогут вам прояснить несколько концепций.

В принципе вы можете сказать, что виниловый источник-поток преобразует читаемый поток, который вы получаете от браузера, в виниловый поток, w821 > ожидается.

A виниловый поток - это формат виртуального файла, и он имеет фундаментальное значение для gulp. Благодаря этим виниловым потокам gulp не нужно писать временный файл между различными преобразованиями. И это одно из главных преимуществ, которое у него есть над Grunt.

Ответ 2

Этот модуль является просто мостом, который упрощает использование обычных текстовых потоков, таких как это в сочетании с gulp.