2014-12-29 34 views
14

Używam tego dopasowywanie plików w haustem:Jak używać globu do ignorowania plików zaczynających się od znaku podkreślenia?

'content/css/*.css' 

Ale chciałbym tylko zawierać pliki NIE początek znaku podkreślenia. Czy ktoś może mi powiedzieć, jak mogę to zrobić?

Oto kod:

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

To nie wygląda na wyrażenie regularne, wygląda jak wieloznaczna nazwa pliku. – Barmar

+0

Myślę, że jest określany jako łyk, ale jestem trochę zdezorientowany tym wszystkim. – Alan2

+0

Tak też nazywa się to w powłoce. – Barmar

Odpowiedz

25

Jeśli symbole wieloznaczne haustem są jak symbole wieloznaczne powłoki:

content/css/[^_]*.css 

^ na początku zestawu znaków oznacza pasuje do żadnych znaków nie w zestawie .

1

Możesz użyć tego wyrażenia regularnego.

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

Dodaj $ na koniec, jeśli to konieczne.

+0

Czy możesz mi powiedzieć, co tutaj robi ". * \" W środku? Również szukam plików, które nie zaczynają się od podkreślenia. – Alan2

+0

'[^ _]' dopasowuje pierwszą literę nazwy pliku, tylko jeśli nie jest podkreśleniem. Tak więc poniższe '. *' Pasuje do dowolnej postaci nie łapczywie, dopasowuje również podkreślenia. Ostateczne ".css" zapewnia, że ​​nazwy plików muszą kończyć się .css' –

2

korzystać z tej wtyczki 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/')); 
}); 

myślę łyk obsługuje plikowi glob nie pełnej regex, ale można dać spróbować content/css/[^_]*.less

+0

Jestem bardzo otwarty na nowe sugestie, ale możesz sprawdzić moje zaktualizowane pytanie, gdzie pokazuję kod, który jest używany. Myślę, że moja wersja może być nieco prostsza, ponieważ nie wymaga ignorowania gulpów. Popieram wasze komentarze na ten temat. Dzięki – Alan2

+0

Sprawdź aktualny wpis, Ale twój kod zawiera wszystkie pliki kończące się .less Nie jestem pewien, czy łyk domyślnie obsługuje pełne wyrażenie w nazwach plików !! –

4

można dodać drugi glob whitch będzie filtrować pliki lub foldery z podkreślnikiem.

Dla ignorować foldery używać:

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

'!**/_*/**' będzie filtrować foldery, które rozpoczynają się od znaku podkreślenia.