如何从文件中搜索字符串并使用Gulp将其替换为另一个字符串

时间:2017-10-22 19:53:59

标签: javascript search replace gulp match

我想使用Gulp从 test1.js 文件中获取选择器并将其替换为 test2.js

test1.js

@Component({
    selector: 'app-root',
    ...
})
export class AppComponent {}

所以,我想得到" app-root"来自 test1.js

test2.js

var selector = "#selector"
function() {}

test2.js 中,我想要替换" #selector"通过" app-root"。

我知道如何用文件中的另一个字符串替换字符串:

gulp.src('test2.js', {base: 'src/'})
.pipe(replace(new RegExp(/#selector/, 'g'), (match, p1) => {
    return 'app-root';
}))
.pipe(gulp.dest('dist'));

但我不知道如何通过" app-root"到流替换。

我怎么能和Gulp一起做?

谢谢!

1 个答案:

答案 0 :(得分:0)

我找到了如何使用 map-stream

执行此操作
var gulp = require('gulp');
var map = require('map-stream');
var fs = require('fs');

gulp.task('default', function() {
    gulp.src('./test1.js')
        .pipe(map(function(file, callback) {
            var test = file.contents.toString().match(/selector: '(.*)'/i);
            fs.readFile('./test2.js', function read(err, data) {
                if (test) {
                    fs.writeFile('./test2.js', data.toString().replace('#selector', test[1]));
                }
            });
        }));
});