使用node.js流创建文件和管道以进行吞咽

时间:2015-01-29 14:34:47

标签: javascript node.js gulp fs

我正在使用node.js.我有一个缓冲区,我需要将它写入一个名为' bla.js'然后管道g g了。类似的东西:

var uglify = require('gulp-uglify');

var buffer = ....
var wstream = fs.createWriteStream('bla.js');
wstream.write(buffer);
wstream.pipe(uglify());

这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

据我所知,您应该能够多次在可读流上调用pipe()并将内容发送到两个不同的可写流。

例如(干编码):

var fs = require('fs')
,   uglify = require('gulp-uglify');

var rstream = fs.createReadStream('test.log');
rstream.pipe(fs.createWriteStream('bla.js'));
rstream.pipe(uglify());

答案 1 :(得分:1)

看起来插件vinyl-source-stream提供了您想要做的解决方案:

var source = require('vinyl-source-stream')
var streamify = require('gulp-streamify')
var browserify = require('browserify')
var fs = require('vinyl-fs');
var uglify = require('gulp-uglify');

var bundleStream = browserify('index.js').bundle()

bundleStream
  .pipe(source('index.js'))
  .pipe(streamify(uglify()))
  .pipe(fs.dest('./bla.js'))