angularjs - Karma 文件 : include everything, 除了忽略 Bower_components,除了包含特定的 Bower 文件

标签 angularjs karma-runner bower

在一个包含优先于排除的世界中,这就是我想要的:

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',
],

我刚刚在我们的存储库中使用大量的 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 相关文件并自行崩溃的风险。

关于angularjs - Karma 文件 : include everything, 除了忽略 Bower_components,除了包含特定的 Bower 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31493806/

相关文章:

node.js - 如何修复通过命令行安装 Zurb Foundation for Apps 生成的错误 : Enoent?

javascript - 将一行 php 数据传递给 AngularJS 模式

javascript - 使用 ng-repeat 和 foundation accordion 的动画

angularjs - jasmine angularjs 测试-参数 'PhoneListCtrl' 不是函数,未定义

javascript - karma 测试运行器未运行任何测试

jquery - 在哪里编写 Bower 代码来安装 Alertify?

gulp - 如何忽略 gulp 中特定的 bower javascript 库(可能是正则表达式问题)?

javascript - 为什么我的标签仍然显示?

angularjs - 在 $http.post 之后用 $http.get 重新加载 Controller

unit-testing - AngularJS 测试 promise 在 promise 中被调用