是否可以同步将流转换为缓冲区?
Is it possible to convert stream to buffer synchronously?
查看使用 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" 替换内容并将那些 "spoiled" 文件保存到 "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'));
});
试试这个:
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'));
});
查看使用 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" 替换内容并将那些 "spoiled" 文件保存到 "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'));
});
试试这个:
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'));
});