我有一个吞咽任务:
var gulp = require('gulp');
gulp.task('myStaticFiles', function() {
gulp.src('staticSite/**')
.pipe(gulp.dest('build/site'));
});
在src
和dest
之间,我想做一个gulp-replace
(或类似的)。我目前有:
var gulp = require('gulp');
var replace = require('gulp-replace');
gulp.task('myStaticFiles', function() {
gulp.src('staticSite/**')
.pipe(replace(/mypattern/, "replacevalue"))
.pipe(gulp.dest('build/site'));
});
但是,这会影响管道中的所有文件。我想:
- 在受
replace
影响的流中只有特定文件(按名称指定的特定文件或具有特定扩展名的文件);以及 - 让所有文件到达
gulp.dest
我该怎么做?
gulp-replace
文档中没有这方面的内容,所以也许我只是缺乏一些关于"吞咽方式"的知识来做这种事情?
尝试这种方法,使用gulp-if-
(function() {
'use strict';
var gulp = require( 'gulp' ),
gulpif = require( 'gulp-if' ),
replace = require( 'gulp-replace' );
var condition = function ( file ) {
// TODO: add business logic
return true;
}
gulp.task( 'myStaticFiles', function() {
return gulp
.src( 'staticSite/**' )
.pipe( gulpif( condition, replace( /mypattern/, 'replacevalue' ) ) )
.pipe( gulp.dest( 'build/site' ) );
});
})();