Karma 无效的配置文件

Karma Invalid config file

为了让karma配置文件更容易配置路径,我使用变量来存储路径的某些部分。

var publicfolder = "public"
var mypath = "packages/vendor/package/";

files: [
  publicfolder+'/assets/libs/jquery/dist/jquery.js',
  publicfolder+'/assets/libs/angular/angular.js',
  publicfolder+'/assets/libs/**/*.js',
  publicfolder+'/app/**/*.js',
  mypath +'/public/app/**/*.test.js',
  mypath +'/public/app/**/*.html'
],

preprocessors: {
    mypath +'/public/app/**/*.html':['ng-html2js']
},

但是,当我 运行 测试时,出现错误

E:\www\project\karma.conf.js:83
    mypath +'/public/app/**/*.html':['ng-html2js']
           ^
ERROR [config]: Invalid config file!
  SyntaxError: Unexpected token +
    at Module._compile (module.js:439:25)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)

我的问题是为什么?为什么我不能把变量放在那里?为什么放在 files 数组中可以,但不能放在 preprocessors 中?

preprocessors 是一个对象,您不能使用 initializer notation. You can use expressions if you are setting the key using square bracket notation 将表达式放入对象键中。

所以在这种情况下你可以这样做:

var mypath = "packages/vendor/package/";
var preprocessors = {};
preprocessors[mypath +'/public/app/**/*.html'] = ['ng-html2js'];

files 数组中使用表达式很好,因为您只是在创建常规字符串,而不是对象键。