2014-12-29 9 views
14

Ich bin mit dieser Datei Anpassung in Zug:Wie kann ich einen Glob verwenden, um Dateien zu ignorieren, die mit einem Unterstrich beginnen?

'content/css/*.css' 

Aber ich möchte nur, um die Dateien enthalten, die nicht Start mit einem Unterstrich. Kann mir jemand sagen, wie ich das machen kann?

Hier ist der Code:

gulp.task('less', function() { 
    gulp.src('content/less/*.less') 
     .pipe(less()) 
     .pipe(gulp.dest('content/css')); 
}); 
+1

Das sieht nicht wie ein Regexp aus, es sieht wie ein Wildcard-Dateiname aus. – Barmar

+0

Ich denke, es wird als ein Glob in Schluck bezeichnet, aber ich bin ein bisschen verwirrt von allem. – Alan2

+0

So heißt es auch in der Shell. – Barmar

Antwort

25

Wenn Gulp Platzhalter wie Shell Platzhalter sind:

content/css/[^_]*.css 

Die ^ am Anfang eines Zeichensatzes bedeutet nicht in dem Satz alle Zeichen übereinstimmen .

1

Sie könnten diese Regex verwenden.

content/css/[^_].*\.css 

Fügen Sie $ bei Bedarf zuletzt hinzu.

+0

Kannst du mir sagen, was das ". * \" In der Mitte hier macht? Ich suche auch nach Dateien, die nicht mit einem Unterstrich beginnen. – Alan2

+0

'[^ _]' stimmt mit dem ersten Buchstaben des Dateinamens überein, nur wenn es kein Unterstrich ist. So passt das folgende '. *' Zu jedem Zeichen nicht gierig, es passt auch zu Unterstrichen. Und das abschließende '.css' behauptet, dass die Dateinamen mit .css' enden müssen. –

2

Verwenden Sie dieses Plugin https://github.com/robrich/gulp-ignore

var gulpIgnore = require('gulp-ignore'); 
var condition = '_*.css'; //exclude condition 

gulp.task('less', function() { 
    gulp.src('content/less/*.less') 
    .pipe(gulpIgnore.exclude(condition)) 
    .pipe(less()) 
    .pipe(gulp.dest('/dist/')); 
}); 

Ich denke, schluck Datei glob nicht voll-regex unterstützt, aber Sie können einen Versuch content/css/[^_]*.less

+0

Ich bin sehr offen für Ihre neuen Vorschläge, aber können Sie meine aktualisierte Frage überprüfen, wo ich den Code zeige, der verwendet wird. Ich denke, dass meine Version ein bisschen einfacher sein könnte, da sie kein Schluck-Ignorieren benötigt. Ich begrüße Ihre Kommentare dazu. Danke – Alan2

+0

Überprüfen Sie den aktualisierten Beitrag, Aber Ihr Code ist einschließlich aller Dateien mit Endung .less Ich bin mir nicht sicher, ob Schluck standardmäßig volle Regex in Dateinamen unterstützt !! –

4

Sie können einen zweiten glob hinzufügen geben whitch Dateien filtert oder Ordner mit einem Unterstrich.

Für Ordner ignorieren Ich benutze:

gulp.src(['./src/**/*.html', '!**/_*/**']) 

'!**/_*/**' werden die Ordner auswählen, die mit einem Unterstrich beginnen.

Verwandte Themen