Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to replace in stream using Gulp?

I try to switch from Grunt to Gulp and I have an issue:

I read two streams from two files

var fileStream = gulp.src(file);
var injectionStream = gulp.src(injection)
.pipe(replace('#class-name#', argv.cname));

If my console argument "--remove" is absent I have no problem to concatenate these streams

.pipe(concat('animation.styl'))
.pipe(gulp.dest('./dist'))

However when '--remove' is true I want to delete injection, in other words, subtract injectionStream from fileStream.

I tried:

var es = require('event-stream');
es.replace()

var replace = require('gulp-replace');

It works with strings, but I cannot succeed with streams read from files. Can anybody give me a small hint?

And maybe it is an incorrect tool for generation task and I should stay with Grunt and\or other tools like yo,etc?
Thank you for your time!

like image 692
Svitlana Avatar asked Sep 19 '14 16:09

Svitlana


1 Answers

Nice work :) Looks like gulp-replace might be an easier way for folk coming here from google..

var replace = require('gulp-replace');

gulp.task('templates', function(){
  gulp.src(['file.txt'])
    .pipe(replace(/foo(.{3})/g, '$1foo'))
    .pipe(gulp.dest('build/file.txt'));
});
like image 183
ptim Avatar answered Sep 22 '22 23:09

ptim