简体   繁体   English

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

[英]Is it possible to convert stream to buffer synchronously?

Look at the simplest Gulp task that uses 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'));
});

It takes files from the src directory, replaces content with "blabla" and saves those "spoiled" files to the "dist" directory. 它从src目录中获取文件,将内容替换为“ blabla”,然后将这些“损坏的”文件保存到“ dist”目录中。 It's easy! 这很容易!

But what if we have stream instead of the "blabla"? 但是,如果我们有流而不是“ blabla”,该怎么办? For example: 例如:

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'));
});

Try this: 尝试这个:

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'));
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM