2014-10-29 15 views
36

Poszukuję lepszego wzoru globalnego dla usemin, chcę znaleźć wszystkie pliki .js, ale wykluczyć pliki .spec.js. Mam do tej pory następujące rozwiązanie.Wzorzec globu węzła dla każdego pliku .js z wyjątkiem .spec.js

<script src="components/**/*(.js|!(*.spec.js|*.scss))"></script>

Rozwiązanie mam w tej chwili wymaga mi zachować dodanie rozszerzenia plików, aby wykluczyć je, bo inaczej się podniósł, na przykład .html plików.

Próbowałem zrobić tylko szukać plików .js i wykluczyć z nich .spec.js, ale nie wydaje się działać.

Dodanie kolejnego !components/**/*.spec.js jako kolejnego skryptu nie działa.

+2

Możesz być w stanie wykluczyć te skrypty testowe z wzorem glob, ale być może lepszym rozwiązaniem byłoby umieścić je w osobnym katalogu 'test' na tym samym poziomie co "komponenty". W ten sposób są one łatwo wyłączone z procesu tworzenia. –

+0

Uzgodnione +1 i mam wiele razy, ale tym razem mam strukturę folderów opartą na komponentach razem z kodem i specyfikacją. – roughcoder

+0

Zmieniłem nazwę plików '* .spec.js' na" * .spec ". – Heikki

Odpowiedz

84

ten glob obejmuje wszystkie *.js ale nie *.spec.js:

components/**/!(*.spec).js 
+0

Co zrobić, jeśli mam więcej plików do zignorowania, takich jak * .controller.js, * .module.js, itp? Próbuję zmodyfikować twoją odpowiedź na pracę, ale bez powodzenia. – Justin

+7

Ok Ja to rozgryzłem: 'components/** /! (*. Spec | * .controller) .js' – Justin

+2

Na co się kompiluje? Po prostu wyobrażałem sobie, że jest to "components/**/*.! (Spec) .js" Myślę o regexie. Dlaczego gwiazda nie jest zanegowana między nawiasami? – user1693057

Powiązane problemy