【问题标题】:gulp: pass only files changed in pipegulp:仅传递管道中更改的文件
【发布时间】:2015-11-13 08:19:01
【问题描述】:

我尝试对文件进行排序,在一些文件中替换文本并仅保存更改。在我当前的代码中,gulp-changed 什么都不做。

const gulp = require('gulp');
const changed = require('gulp-changed');
const replace = require('gulp-replace');

gulp.task('text-replace', function(){

    var before = 'xxx';
    var after = 'yyy';

gulp.src('src/**/*')
    .pipe(replace(before, after))
    .pipe(changed('src'))
    .pipe(gulp.dest('dest'));
});

更新:我自己几乎解决了这个问题,但在下面我的回答中有一个与 gulp-cached 相关的小问题。

【问题讨论】:

    标签: gulp gulp-changed gulp-newer gulp-replace gulp-cached


    【解决方案1】:

    根据gulp-newer vs gulp-changed gulp-changed 和 gulp-newer 不将流文件与目录中的文件进行比较,它们将“src”目录文件与“dest”目录文件进行比较,并据此决定如何处理流文件。还有一个解决办法:

    const cache = require('gulp-cached');
    
    gulp.src('src/**/*')
        .pipe(cache('just_cache_name'))
        .pipe(replace(before, after))
        .pipe(cache('just_cache_name'))
        .pipe(gulp.dest('dest'));
    });
    

    仍然有一个问题 - 我在 dest 中完全重新创建了 src 目录结构,无论它是文件还是空。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-26
      相关资源
      最近更新 更多