2015-02-21 20 views
12

Biraz şöyle bir basit angularjs uygulama kurulumu vardır:Karma'yı kullanarak, belirli bir alt klasörün dışındakiler dışındaki bir desenle eşleşen tüm dosyaları nasıl hariç tutarım?

client 
    vendor 
     angular 
     bootstrap 
     jquery 
     ... 
    app.module.js 
    app.controller.js 
    ... 
node_modules 
    angular-mocks 
    ... 

Ben karma.conf.js dosyayı kuruyorum ve ben vendor den angular\angular.js eklemek istiyoruz. vendor'dan başka bir şey eklemek istemiyorum. Ben files açıkça angular.js dahil ediyorum, ama sonra exclude bölüm desende hariç ediliyor: Ben

files: [ 
    'client/vendor/angular/angular.js', 

    'client/**/*.js', 
    'client/**/*.spec.js' 
], 

exclude: [ 
    'client/vendor/**/*.js' 
], 

sorun basit: Burada

Alakalı karma.conf.js bölümlerde ne var.

angular/angular.js (ve belki de diğerleri sonra) hariç tüm client/vendor'u nasıl hariç tutabilirim? client dizini, kendi .js dosyalarını içeren çok sayıda dosya, alt klasör, vb. Içerir. Bu nedenle, örneğin, kendi klasörüne dahil etmek istediğim her şeyi taşımak kolay değildir.

cevap

21

bu deneyin:

client/vendor/**/!(angular).js 

Example

Daha dosya adları şöyle hariç tutulabilir: Burada kullanılan

client/vendor/**/!(angular|angular-route).js 

desenler globs denir.

Burada GH'de node-globs node adresindeki glob işlevine kısa guide adı verilmiştir.

+0

Bu oldukça fazla var. Bir sonraki problem, hem angular.js hem de angular.min.js'nin eklenmesiydi, bu yüzden sadece onu değiştirdim (angular.js). Bağlantılar için teşekkürler - çok yararlı. –

+1

Bu çalışır, ancak sadece .js' dosyaları değil, tüm dosya uzantılarına uygulanır. Bunu yapmanın en basit yolu, herhangi bir açısal modüle vb. Eşleşecek olan "! (Açısal *). Js" dir. – Mosho

İlgili konular