1

我有这个吞咽任务:

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文档对此一无所知,所以也许我只是缺乏一些关于“吞咽方式”的知识来做这种事情?

4

1 回答 1

2

尝试这种方法,使用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' ) );
  });

})();
于 2015-12-11T10:01:58.473 回答