Karma 文件:包括所有内容,除了忽略 bower_components,除了包括特定的 bower 文件
Karma files: include everything, except ignore bower_components, except include specific bower files
在包容优先于排除的世界里,这就是我想要的:
files : [
'app/bower_components/angular/angular.js',
'app/bower_components/angular-route/angular-route.js',
'app/bower_components/angular-mocks/angular-mocks.js',
'app/**/*.js',
],
exclude: [
'app/bower_components/**/*.js'
],
但是,在 karma 配置中,文件排除优先。
除了我决定保留的特定文件外,我能否轻松忽略 bower_components 文件夹中可能潜伏的任何内容?
是的,您可以使用模式来做到这一点。 Karma 在内部使用 minimatch,因此对于您提出的情况,以下内容应该可以正常工作:
files : [
'app/bower_components/angular/angular.js',
'app/bower_components/angular-route/angular-route.js',
'app/bower_components/angular-mocks/angular-mocks.js',
'app/**/*.js',
],
exclude: [
'app/bower_components/**/!(angular.js|angular-route|angular-mocks).js',
],
我刚刚在我们的 repo 中使用大量 angular-
文件进行了尝试,尽管看起来该模式中有一个无关的 .js
,但它似乎可以正常工作。
Exclude every .js
file in any subfolder of bower_components
, except for files named either angular.js
, angular-route
or angular-mocks
.
现在,如果您愿意 - 您可以替换 files: []
数组中最上面的三个条目,然后只放置 app/bower_components/**/*.js
因为正如您所说 - 排除优先。只需继续堆积您 不想 想要排除的文件名,您应该会自动包括这些文件名。
编辑
正如 OP 所指出的那样 - 排除模式中的否定必须是包括扩展名的完整文件名,否则我们 运行 包含与所述文件名匹配但没有扩展名的文件夹的风险。
新模式为:
'app/bower_components/**/!(angular.js|angular-route.js|angular-mocks.js).js',
Exclude all .js files from bower_components except angular.js, angular-route.js and angular-mocks.js
至于包含,请在所有其他文件之前包含 angular.js
,以免 运行 存在首先包含 angular 依赖文件并自行崩溃的风险。
在包容优先于排除的世界里,这就是我想要的:
files : [
'app/bower_components/angular/angular.js',
'app/bower_components/angular-route/angular-route.js',
'app/bower_components/angular-mocks/angular-mocks.js',
'app/**/*.js',
],
exclude: [
'app/bower_components/**/*.js'
],
但是,在 karma 配置中,文件排除优先。
除了我决定保留的特定文件外,我能否轻松忽略 bower_components 文件夹中可能潜伏的任何内容?
是的,您可以使用模式来做到这一点。 Karma 在内部使用 minimatch,因此对于您提出的情况,以下内容应该可以正常工作:
files : [
'app/bower_components/angular/angular.js',
'app/bower_components/angular-route/angular-route.js',
'app/bower_components/angular-mocks/angular-mocks.js',
'app/**/*.js',
],
exclude: [
'app/bower_components/**/!(angular.js|angular-route|angular-mocks).js',
],
我刚刚在我们的 repo 中使用大量 angular-
文件进行了尝试,尽管看起来该模式中有一个无关的 .js
,但它似乎可以正常工作。
Exclude every
.js
file in any subfolder ofbower_components
, except for files named eitherangular.js
,angular-route
orangular-mocks
.
现在,如果您愿意 - 您可以替换 files: []
数组中最上面的三个条目,然后只放置 app/bower_components/**/*.js
因为正如您所说 - 排除优先。只需继续堆积您 不想 想要排除的文件名,您应该会自动包括这些文件名。
编辑
正如 OP 所指出的那样 - 排除模式中的否定必须是包括扩展名的完整文件名,否则我们 运行 包含与所述文件名匹配但没有扩展名的文件夹的风险。
新模式为:
'app/bower_components/**/!(angular.js|angular-route.js|angular-mocks.js).js',
Exclude all .js files from bower_components except angular.js, angular-route.js and angular-mocks.js
至于包含,请在所有其他文件之前包含 angular.js
,以免 运行 存在首先包含 angular 依赖文件并自行崩溃的风险。