2014-10-29 15 views
36

Sto cercando un modello glob migliore per usemin, voglio trovare tutti i file .js ma escludere i file .spec.js. Ho la seguente soluzione finora.Modello glob del nodo per ogni file .js tranne .spec.js

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

La soluzione che ho in questo momento mi impone di continuare ad aggiungere le estensioni dei file per escluderli, altrimenti ottenere raccolti, ad esempio .html file.

Ho cercato di farlo solo per cercare i file .js ed escludere il .spec.js da loro ma non sembra funzionare.

Aggiunta anche di un !components/**/*.spec.js come un altro script di seguito non sembra funzionare.

+2

Potreste essere in grado di escludere tali script di test con un modello di glob, ma forse un approccio migliore sarebbe quello di metterli in un separato 'test' directory allo stesso livello di 'componenti'. In questo modo sono facilmente esclusi dal processo di compilazione. –

+0

Concordato +1 e ho molte volte, ma questa volta ho una struttura di cartelle basata su componenti con codice e specifiche insieme. – roughcoder

+0

Ho rinominato i file '* .spec.js' in" * .spec'. – Heikki

risposta

84

Questo glob include tutti *.js ma non *.spec.js:

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

Cosa succede se ho più file da ignorare, come * .controller.js, * .module.js, etc? Sto cercando di modificare la risposta al lavoro ma senza successo fino ad ora. – Justin

+7

Ok ho capito: 'components/** /! (*. Spec | * .controller) .js' – Justin

+2

Cosa viene compilato? L'ho solo immaginato come "components/**/*.! (Spec) .js" Penso al modo regex. Perché la stella non è negata tra le parentesi? – user1693057