使用Gulp + Browserify时,对象#<Readable>没有方法'write'

Tx3*_*Tx3 7 javascript node.js browserify gulp

从Gulp.js存储库中遵循示例配方时.我收到一个错误:

[12:27:31] Using gulpfile C:\GH\riot-tag-build\Gulpfile.js
[12:27:31] Starting 'browserify'...

_stream_readable.js:602
    var written = dest.write(chunk);
                       ^
TypeError: Object #<Readable> has no method 'write'
    at write (_stream_readable.js:602:24)
    at flow (_stream_readable.js:611:7)
    at _stream_readable.js:579:7
    at process._tickCallback (node.js:442:13)
Run Code Online (Sandbox Code Playgroud)

我试图修改源代码以符合我的要求,这是我试图运行的Gulpfile没有运气.

var gulp = require('gulp');
var browserify = require('browserify');
var riotify = require('riotify');
var transform = require('vinyl-transform');
var buffer = require('gulp-buffer');

gulp.task('browserify', function () {
  // set up the browserify instance on a task basis
  var b = browserify({debug: true});
  // transform regular node stream to gulp (buffered vinyl) stream
  var browserified = transform(function(filename) {
    b.add(filename);
    return b.bundle();
  });

  return gulp.src('./main.js')
    .pipe(browserified)
    .pipe(gulp.dest('./dist/'));
});

gulp.task('default', ['browserify']);
Run Code Online (Sandbox Code Playgroud)

整个例子可以在这里找到

有什么想法为什么流可能是只读的?任何帮助赞赏.

Bib*_*ung 9

我遇到了同样的问题.我找到了解决方案.您只需将"browserify"版本降级到最新的9.0.4.一切都会好的.您可以引用提交历史记录.

https://github.com/substack/node-browserify/commits/master

==== ====更新

我解决了这个错误.我使用'through2',代码如下.

gulp.src('./src/index.js')
    .pipe(through2.obj(function (file, enc, next){
            browserify(file.path)
                .bundle(function(err, res){
                    // assumes file.contents is a Buffer
                    file.contents = res;
                    next(null, file);
                });
        }))
    .pipe(gulp.dest('./build/'))
Run Code Online (Sandbox Code Playgroud)

解决方案来自这个问题.

https://github.com/substack/node-browserify/issues/1044