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
数组中使用表达式很好,因为您只是在创建常规字符串,而不是对象键。
为了让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
数组中使用表达式很好,因为您只是在创建常规字符串,而不是对象键。