如何让gullow替换只影响某些文件



我有一个吞咽任务:

var gulp = require('gulp');
gulp.task('myStaticFiles', function() {
    gulp.src('staticSite/**')
        .pipe(gulp.dest('build/site'));
});

srcdest之间,我想做一个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' ) );
  });
})();

相关内容

  • 没有找到相关文章

最新更新