为什么我必须将 vinyl-source-stream 与 gulp 一起使用?

Why do I have to use vinyl-source-stream with gulp?

我正在尝试使用 gulp 和 browserify 将我的 .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和源码,还是一头雾水。有帮助吗?

我觉得看完这篇文章gulp 项目的愿景、历史和未来 可以帮助您理清一些概念。

基本上你可以说 vinyl-source-streamreadable stream you get from browserify 转换成 vinyl stream 这就是 gulp 期待获得。

乙烯基流是一种虚拟文件格式,它是Gulp[的基础=26=]。感谢 vinyl streams Gulp 不需要在不同的转换之间写入临时文件。这是它相对于 Grunt.

的主要优势之一

这个模块只是一个桥梁,它使传统的文本流与 gulp.

的结合使用变得简单