Reputation: 310
I’d like to make npm module which returns stream and then pipe it to gulp.dest
in some other app.
Example:
// 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('./'));
});
Unfortunately for this code I got:
path.js:313
throw new TypeError('Arguments to path.resolve must be strings');
^
TypeError: Arguments to path.resolve must be strings
It works in this way
// gulpfile.js
gulp.task('default', function() {
var myModule = require('./some-module');
var fs = require('fs');
myModule().pipe(fs.createWriteStream('someOtherFile.txt');
});
Upvotes: 2
Views: 214
Reputation: 717
You can use vinyl-source-stream to convert your stream into a gulp-compatible stream.
Get it:
npm install vinyl-source-stream --save-dev
Usage:
// 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('./'));
});
The parameter to source()
will be the filename used by gulp.dest()
.
Upvotes: 1