Подтвердить что ты не робот

Использование Karma, как я могу исключить все файлы, соответствующие шаблону, за исключением тех, которые находятся в определенной подпапке?

У меня есть простая установка приложения AngularJs, которая выглядит примерно так:

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

Я создаю файл karma.conf.js, и я хочу включить angular\angular.js из vendor. Я не хочу включать что-либо еще из vendor.

Вот что я имею в соответствующих разделах karma.conf.js:

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

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

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

Проблема у меня проста: я включаю angular.js явно в files, но затем исключается в шаблоне раздела exclude.

Как я могу исключить все client/vendor за исключением angular/angular.js (и, возможно, других позже)? Каталог client содержит множество файлов, подпапок и т.д., Которые включают в себя мои собственные .js файлы, поэтому просто не просто просто переместить все, что я хочу включить, в свою собственную папку.

4b9b3361

Ответ 1

Попробуйте следующее:

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

Пример

Больше имен файлов можно исключить следующим образом:

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

Используемые здесь шаблоны называются globs.

Вот короткое руководство для функциональности glob в node от node-globs на GH.