0

コンテンツが異なる 2 つの兄弟ディレクトリに 2 つのファイルを作成すると、次のようになります。

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

Sha1Digest次に、gulp を使用して最初のものを宛先フォルダーに出力し、コンパレーターを使用して gulp-changed でフィルタリングして、2 番目のもので上書きしようとします。

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

誰かが私の誤解を解いてくれませんか?

4

1 に答える 1

1

changed()オプションはプラグイン引数の一部でなければならないと思います。(;

変化する

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

.pipe(changed("dst", {hasChanged: changed.compareSha1Digest}))
于 2015-04-10T17:43:00.307 に答える