gulp-changed不会覆盖具有不同内容的文件

时间:2015-04-09 20:26:41

标签: gulp gulp-changed

如果我在两个不同内容的兄弟目录中制作两个文件:

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

然后使用gulp将第一个输出到目标文件夹,并尝试使用第二个覆盖它,使用Sha1Digest比较器进行gulp-changed过滤:

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 个答案:

答案 0 :(得分:1)

我想这些选项必须是changed()插件参数的一部分。 (;

更改

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

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