是否可以同步将流转换为缓冲区?

时间:2015-03-16 18:48:05

标签: javascript node.js stream gulp gulp-tap

查看使用gulp-tap的最简单的Gulp任务:

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

gulp.task('mytask', function () {
    return gulp.src("src/*/*.js")
        .pipe(tap(function (file) {
            file.contents = new Buffer('blabla');        
        }))
    .pipe(gulp.dest('./dist'));
});

它从src目录中获取文件,用“blabla”替换内容,并将这些“被破坏”的文件保存到“dist”目录中。这很简单!

但是,如果我们有流而不是“blabla”呢?例如:

var gulp = require('gulp');
var tap = require('gulp-tap');
var jsdocParse= require("jsdoc-parse");  

gulp.task('jsdoc', function () {
  return gulp.src("src/*/*.js")
    .pipe(tap(function (file) {
      var stream = jsdocParse(file.path);
      file.contents = ???;
    }))
    .pipe(gulp.dest('./dist'));
});

1 个答案:

答案 0 :(得分:1)

试试这个:

gulp.task('mytask', function () {
    return gulp.src("src/*.js")
        .pipe(tap(function (file, t) {
          file.contents = Buffer.concat([
                jsdocParse(file.path)
            ]);
        }))
    .pipe(gulp.dest('./dist'));
});