gulp-change не перезаписывает файлы с различным содержанием

Если я сделаю два файла в двух дочерних каталогах с различным содержанием:

nvioli$ echo "a" > test1/file.txt
nvioli$ echo "b" > test2/file.txt

затем используйте gulp для вывода первого в целевую папку и попробуйте перезаписать его вторым, фильтруя с помощью gulp-change, используя Sha1Digest компаратор:

var changed = require('gulp-changed');

gulp.task('test1', function(){
        return gulp.src("test1/file.txt")
            .pipe(gulp.dest("dst"))
    });

gulp.task('test2', function(){
        return gulp.src("test2/file.txt")
            .pipe(changed("dst"), {hasChanged: changed.compareSha1Digest})
            .pipe(gulp.dest("dst"))
    });

nvioli$ gulp test1
[16:18:01] Using gulpfile ~/git/node/gulpfile.js
[16:18:01] Starting 'test1'...
[16:18:01] Finished 'test1' after 12 ms
nvioli$ gulp test2
[16:18:16] Using gulpfile ~/git/node/gulpfile.js
[16:18:16] Starting 'test2'...
[16:18:16] Finished 'test2' after 22 ms

Я ожидаю, что файл будет перезаписан, так как исходный файл в test2 отличается по содержанию от существующего в dst папка, но это не тот случай:

nvioli$ cat dst/file.txt
a

Может кто-нибудь, пожалуйста, проясните мое недоразумение?

1 ответ

Решение

Я думаю, что варианты должны быть частью changed() плагины аргументы. (;

+ Изменить

.pipe(changed("dst"), {hasChanged: changed.compareSha1Digest})

в

.pipe(changed("dst", {hasChanged: changed.compareSha1Digest}))
Другие вопросы по тегам