7

我尝试从 Grunt 切换到 Gulp,但遇到了一个问题:

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

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”为真时,我想删除注入,换句话说,从 fileStream 中减去 injectionStream。

我试过了:

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

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

它适用于字符串,但我无法从文件中读取流。任何人都可以给我一个小提示吗?

也许它是一个不正确的生成任务工具,我应该继续使用 Grunt 和\或其他工具,如 yo 等?
感谢您的时间!

4

2 回答 2

11

干得好 :) 看起来gulp-replace对于从谷歌来到这里的人来说可能是一种更简单的方法..

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'));
});
于 2015-02-24T16:42:40.613 回答
2

我终于找到了解决方案!

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

...

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

谢谢

于 2014-09-19T18:45:40.483 回答