直接stream到gulp.dest
我想使npm模块返回stream,然后gulp.dest
到一些其他的应用程序gulp.dest
。
例:
// some-module.js module.exports = function() { return require('fs').createReadStream('someFile.txt'); } // gulpfile.js gulp.task('default', function() { var myModule = require('./some-module'); myModule().pipe(gulp.dest('./')); });
不幸的是这个代码我得到了:
path.js:313 throw new TypeError('Arguments to path.resolve must be strings'); ^ TypeError: Arguments to path.resolve must be strings
它以这种方式工作
// gulpfile.js gulp.task('default', function() { var myModule = require('./some-module'); var fs = require('fs'); myModule().pipe(fs.createWriteStream('someOtherFile.txt'); });
您可以使用vinyl-source-stream将您的stream转换成兼容吞吐量的stream。
得到它:
npm install vinyl-source-stream --save-dev
用法:
// gulpfile.js var source = require('vinyl-source-stream'); gulp.task('default', function() { var myModule = require('./some-module'); myModule() .pipe(source('someOtherFile.txt')) .pipe(gulp.dest('./')); });
source()
的参数将是gulp.dest()
使用的文件名。