2014-10-29 39 views
36

Usemin için daha iyi bir glob modeli arıyorum, tüm .js dosyalarını bulmak istiyorum ama .spec.js dosyalarını hariç tut. Şimdiye kadar aşağıdaki çözüme sahibim.Her bir .js dosyası için Node glob pattern .spec.js

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

anda ben sahip çözümü örneğin, onları dışlamak için dosya uzantıları ekleyerek .html dosyaları başka onlar yakalandı durmamı gerektirir.

Yalnızca .js dosyalarını aramayı denedim ve bunlardan .spec.js'u hariç tutmayı denedim ama işe yaramıyor gibi görünüyor.

!components/**/*.spec.js'u aşağıdaki başka bir komut dosyası olarak eklemek işe yaramıyor gibi görünüyor.

+2

Bir gıdım bile desenli olanlar test komut dosyalarını dışlamak mümkün olabilir, ama belki daha iyi bir yaklaşım, ayrı bir 'sına dizinde koymak olurdu bileşenleri ile aynı seviyede. Bu şekilde, oluşturma işleminizden kolayca hariç tutulurlar. –

+0

Kabul +1 ve birçok kez var, ama bu kez kod ve spec birlikte bileşen tabanlı bir klasör yapısına sahip. – roughcoder

+0

'* .spec.js' dosyalarını yalnızca' * .spec' olarak yeniden adlandırdım. – Heikki

cevap

84

Bu gıdım bile içeren tüm *.js ancak *.spec.js:

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

Göz ardı edecek daha fazla dosyam varsa, * .controller.js, * .module.js, vb. Cevabınızı iş için değiştirmeye çalışıyorum ama şimdiye kadar başarı. – Justin

+7

Tamam Bunu çözdüm: 'bileşenleri/** /! (*. Spec | * .controller) .js' – Justin

+2

Ne derliyor? Ben sadece "bileşenleri/**/*.! (Spec) .js" olarak hayal ettim. "Ben regex yolu düşünüyorum. Yıldızlar parantez arasında neden reddedilmiyor? – user1693057