Javascript 使用Gulp检查文件中是否存在令牌
如果我这样做:Javascript 使用Gulp检查文件中是否存在令牌,javascript,gulp,gulp-replace,Javascript,Gulp,Gulp Replace,如果我这样做: var gulp = require('gulp'); var replace = require('gulp-replace'); var rename = require('gulp-rename'); gulp.task('TaskExample', function ReplaceExampleFileTokens() { return gulp.src('./src/' + 'ExampleFileTokens.config') .pipe
var gulp = require('gulp');
var replace = require('gulp-replace');
var rename = require('gulp-rename');
gulp.task('TaskExample', function ReplaceExampleFileTokens() {
return gulp.src('./src/' + 'ExampleFileTokens.config')
.pipe(replace('#{String}#', 'Hello World'))
.pipe(rename('ExampleFile.config'))
.pipe(gulp.dest('./dest'));
});
我会:
替换ExampleFileTokens.config中的令牌,然后
将其重命名为ExampleFile.config并
最后将其存入“/dest”
我的问题如下:
如何检查{String}是否存在于
ExampleFileTokens.config,如果令牌
不存在吗
我知道我可以用javascript搜索带有标记的文件,但是有没有可能使用gulp replace的方法,因为它已经在搜索和替换我的标记了
我不认为有一种方法可以让gulp replace做你想做的所有工作。在流中设置条件是很麻烦的 不过,你可以用一个过滤器很容易地做到这一点
const gulp = require('gulp');
const replace = require('gulp-replace');
const rename = require('gulp-rename');
const filter = require('gulp-filter');
const filterEach = require('gulp-filter-each')
gulp.task("TaskExample", function () {
// return true if want the file in the stream
// const configFilter = filter(function (file) {
// let contents = file.contents.toString();
// return contents.match('#{String}#');
// });
return gulp.src('./src/' + 'ExampleFileTokens.config')
// you can use either of the following two filters
// .pipe(configFilter)
.pipe(filterEach(content => content.match('#{String}#')))
.pipe(replace('#{String}#', 'Hello World'))
.pipe(rename('ExampleFile.config'))
.pipe(gulp.dest('./dest'));
});