使用Karma,如何排除与特定子文件夹中的模式匹配的所有文件?

问题描述 投票:20回答:1

我有一个简单的AngularJs应用程序设置,看起来有点像这样:

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

我正在建立一个karma.conf.js文件,我想要包括来自angular\angular.jsvendor。我不想在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文件,因此将所有我想要包含的内容移动到自己的文件夹中并不容易。

javascript angularjs karma-jasmine
1个回答
28
投票

试试这个:

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

Example

可以像这样排除更多文件名:

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

这里使用的模式称为globs

这是GH的guide节点中的一个简短的node-globs到glob功能。

© www.soinside.com 2019 - 2024. All rights reserved.