web-dev-qa-db-ja.com

Karmaを使用して、特定のサブフォルダー内のファイルを除き、パターンに一致するすべてのファイルを除外するにはどうすればよいですか?

私は簡単なAngularJsアプリケーションをセットアップしていますが、これは次のようなものです。

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

karma.conf.jsファイルを設定していますが、vendorからangular\angular.jsを含めたいです。 vendorの他のものは含めたくありません。

関連するkarma.conf.jsセクションにあるものは次のとおりです。

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

私が抱えている問題は簡単です。filesangular.jsを明示的に含めていますが、excludeセクションパターンでは除外されています。

client/vendorを除くangular/angular.jsをすべて除外する方法clientディレクトリには、独自の.jsファイルを含む多くのファイル、サブフォルダーなどが含まれているため、たとえば、含めるすべてを独自のフォルダーに移動するのは簡単ではありません。

20
Kirk Larkin

これを試して:

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

次のように、さらにファイル名を除外できます。

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

ここで使用されるパターンは globs と呼ばれます。

ここに短い guide からノードのglob機能へのnode-globs GH。

29
Mosho