如果我这么做:
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中是否存在gulp.dest?gulp-replace的方法,因为它已经在搜索和替换我的令牌了?发布于 2018-05-04 04:19:36
我不认为有什么办法可以让你随心所欲地做你想做的工作。在流中设置条件是很麻烦的。
不过,您可以通过一个过滤器(吞咽式过滤器 )轻松地完成它。
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'));
});https://stackoverflow.com/questions/50124267
复制相似问题