0

我尝试对文件进行排序,在某些文件中替换文本并仅保存更改。在我当前的代码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我自己几乎解决了这个问题,但在我下面的答案中有一个小问题。

4

1 回答 1

0

根据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'));
});

尽管如此,还是有一个问题 - 我已经src完全重新创建了目录结构dest,无论它是带有文件还是空的。

于 2015-11-13T09:23:14.677 回答