如何使用Gulp在stream中replace?

我尝试从Grunt切换到Gulp,我有一个问题:

我从两个文件中读取两个stream

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

如果我的控制台参数“–remove”缺席,我没有问题连接这些stream

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

但是,当“–remove”为真时,我想删除注入,换句话说,从fileStream中减去injectStream。

我试过了:

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

它适用于string,但是我不能用从文件读取的stream成功。 有人可以给我一个小提示吗?

也许这是一个不正确的工具生成任务,我应该留在Grunt和/或其他工具,如哟等?
感谢您的时间!

不错的工作:)看起来像gulpreplace可能是一个更容易的方式,民间从谷歌来到这里…

 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')); }); 

我终于find了解决scheme!

 fs.readFile(injectionFile, 'utf8', function (err, injStr) { injStr = injStr.replace(/svv/g, cname); fileStream .pipe(gulpif(rm!=true,injectString.append(injStr),replace(injStr,''))) .pipe(concat(initialFile)) .pipe(gulp.dest(animation)) 

这花了一段时间,但我很高兴它结束了。

谢谢