如何使用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))
…
这花了一段时间,但我很高兴它结束了。
谢谢