2016-06-06 1 views
2

Wenn ich die DateienGulp Globbing Ausschließen von Dateien dann unexcluding nicht wie beschrieben arbeiten

client/ 
    a.js 
    bob.js 
    bad.js 

Und die schluck Aufgabe

gulp.task('copy', function() { 
    return gulp.src(['client/*.js', '!client/b*.js', 'client/bad.js']) 
      .pipe(gulp.dest('public')); 
}); 

dann nach dem documentation haben sollten wir a.js und bad.js kopieren. Wenn ich dies jedoch mit gulp v3.9.1 ausführe, kopiert es nur a.js.

Ist das ein bekannter Fehler? Gibt es eine Möglichkeit, dies zu tun?

Antwort

0

Es ist kein Fehler, die Dokumentation ist einfach falsch. Die neueste Version von Schluck ist [email protected], die [email protected] verwendet. Die behavior you're referring to wurde erst mit [email protected] eingeführt.

In der Tat, an anderer Stelle des schluck docs explicitly state die glob Bestellung wird eine neue Funktion in [email protected] sein:

Klackse ausgewertet, um gulp.src weitergegeben werden, was bedeutet dies möglich ist gulp.src(['*.js', '!b*.js', 'bad.js']) (schließt jede JS-Datei, die mit einem b außer bad.js beginnt)

das bedeutet, dass Sie einfach auf die aktuelle Entwicklungsversion von schluck (gulpjs/gulp#4.0) und die Vorteile der neuen Funktion nutzen nutzen könnten. Beachten Sie jedoch, dass Schluck 4.x von Schluck 3.x radically different ist, wenn es darum geht, Aufgaben zu definieren.

Eine Abhilfe wäre für Aufgaben Definitionen schluck 3.x zu halten verwenden, aber die neueste Version von vinyl-fs verwenden Vinyl-Streams zu erstellen:

var vinylFs = require('vinyl-fs'); 

gulp.task('copy', function() { 
    return vinylFs.src(['client/*.js', '!client/b*.js', 'client/bad.js']) 
    .pipe(vinylFs.dest('public')); 
}); 

Und wenn Sie wollen, können Sie das nicht tun, dass Verwenden Sie immer merge-stream, um mehrere Datenströme zu einem Datenstrom zu kombinieren:

+0

Vielen Dank. Es sieht so aus, als ob eine andere Lösung, die ich am Ende benutzte, [https://github.com/UltCombo/gulp-src-ordered-globs/](gulp-src-ordered-globs) war. Dies dient als Drop-In-Ersatz für 'gulp.src' mit dem erwarteten Glob-Verhalten. –

Verwandte Themen