Node.js 如何使用Gulp替换流中的?

Node.js 如何使用Gulp替换流中的?,node.js,stream,gruntjs,gulp,build-tools,Node.js,Stream,Gruntjs,Gulp,Build Tools,我试图从咕噜声切换到咕噜声,但我遇到了一个问题: 我从两个文件中读取两条流 var fileStream = gulp.src(file); var injectionStream = gulp.src(injection) .pipe(replace('#class-name#', argv.cname)); 如果我的控制台参数“-remove”不存在,那么连接这些流就没有问题 .pipe(concat('animation.styl')) .pipe(gulp.dest('./dist')

我试图从咕噜声切换到咕噜声,但我遇到了一个问题:

我从两个文件中读取两条流

var fileStream = gulp.src(file);
var injectionStream = gulp.src(injection)
.pipe(replace('#class-name#', argv.cname));
如果我的控制台参数“-remove”不存在,那么连接这些流就没有问题

.pipe(concat('animation.styl'))
.pipe(gulp.dest('./dist'))
然而,当'--remove'为true时,我想删除注入,换句话说,从fileStream中减去injectionStream

我试过:

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

var replace = require('gulp-replace');
它可以处理字符串,但我无法成功地处理从文件读取的流。谁能给我一个小提示吗

也许它对于生成任务来说是一个不正确的工具,我应该继续使用Grunt和\或其他工具,如yo等?

谢谢你抽出时间

我终于找到了解决办法

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))

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

谢谢你

干得好:)看起来对从谷歌来这里的人来说可能是一种更简单的方式

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

大口喝并不像它应该的那么容易使用:)谢谢你,亚历克斯。从我对节点流的短暂探索中发现,Gulp的流API与Node core的流API不同,这真的很烦人。