web-dev-qa-db-fra.com

En utilisant Karma, comment puis-je exclure tous les fichiers qui correspondent à un modèle à l'exception de ceux dans un sous-dossier spécifique?

J'ai une configuration d'application AngularJs simple, qui ressemble un peu à ceci:

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

Je mets en place un karma.conf.js fichier et je veux inclure angular\angular.js de vendor. Je ne veux rien inclure d'autre de vendor.

Voici ce que j'ai dans le karma.conf.js sections:

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

Le problème que j'ai est simple: j'inclus angular.js explicitement dans files, mais il est ensuite exclu dans le modèle de section exclude.

Comment puis-je exclure tout client/vendor à l'exception de angular/angular.js (et peut-être d'autres plus tard)? Le répertoire client contient un grand nombre de fichiers, sous-dossiers, etc., qui incluent mes propres fichiers .js, il n'est donc pas facile de déplacer tout ce que je veux inclure dans son propre dossier, par exemple.

20
Kirk Larkin

Essaye ça:

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

Exemple

Plus de noms de fichiers peuvent être exclus comme ceci:

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

Les modèles utilisés ici sont appelés globs .

Voici un court guide pour la fonctionnalité glob dans le noeud de node-globs sur GH.

29
Mosho