【问题标题】:Karma Invalid config file业力无效的配置文件
【发布时间】:2015-08-11 08:30:24
【问题描述】:

为了让 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里面不行?

【问题讨论】:

    标签: javascript unit-testing karma-runner


    【解决方案1】:

    preprocessors 是一个对象,您不能使用initializer notation 将表达式放入对象键中。如果您使用square bracket notation 设置密钥,则可以使用表达式。

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-09-17
      • 1970-01-01
      • 2022-10-25
      • 1970-01-01
      • 1970-01-01
      • 2015-04-03
      • 1970-01-01
      • 2018-07-09
      • 1970-01-01
      相关资源
      最近更新 更多