Возможно ли преобразовать поток в буфер синхронно?
Посмотрите на простейшую задачу Gulp, которая использует gulp-tap:
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". Это просто!
Но что, если у нас есть стрим вместо "блабла"? Например:
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 ответ
Решение
Попробуй это:
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'));
});