2015-09-07 51 views
3

我正在使用Karma(v0.12.37)作为测试运行者以及JSPM(v0.16.2)。我加入了以下因果报应代理配置,以便允许JSPM文件正确装载:Karma代理不能正常工作

proxies: { 
    '/base/jspm_packages/': '/base/app/jspm_packages/' 
} 

卜这个不奏效,未能在以下几点:

PhantomJS 2.0.0 (Windows 8 0.0.0) ERROR: 'Potentially unhandled rejection [10] Error: XHR error loading http://localhost:9876/base/jspm_packages/npm/[email protected] 
     Error loading http://localhost:9876/base/jspm_packages/npm/[email protected] 
     Error loading http://localhost:9876/base/app/pages/examples/todo-example/todo.controller.test.js' 

调试日志,并提供:

proxying request - /base/jspm_packages/npm/[email protected] to localhost:9876 
/base/app/jspm_packages/npm/[email protected] { host: 'localhost', 
    port: 9876, 
    baseProxyUrl: '/base/app/jspm_packages/', 
    https: false } 

但它包含 '应用程序' 下面的网址正常工作:

的http://本地主机:9876/base/app/ jspm_packages/npm/[email protected]

任何线索都出了什么问题?

回答

5

尝试:

proxies: { 
    '/app/': '/base/app/', 
    '/jspm_packages/': '/base/jspm_packages/' 
} 
+0

这是有帮助的,还记得那么“/应用程序/”改为无论你怎么称呼你的基地文件夹中的两个字符串。例如对我来说它是'/ public_src /':'/ base/public_src /' – putonspectacles

2

如果你用 “/” 一个的baseUrl配置了JSPM-配置,尝试删除因为卡玛热蒙了的baseUrl条目不支持自定义的baseUrl。那么你应该能够摆脱jspm_packages的“代理”条目。

参见:https://github.com/Workiva/karma-jspm/issues/91

+0

我有以下错误:'错误:XHR错误(404未找到)加载jspm_packages/npm/babel-core @ 5.8.34.js' 。设置一个空的baseUrl也会删除该错误。 – chelder

0

已经做了很多的尝试和错误后,发现了以下方法:

,而不是与代理打,改变karma.config.js

jspm: { 
     ... 
     paths: { 
      "github:*": "app/jspm_packages/github/*", 
      "npm:*": "app/jspm_packages/npm/*", 
      'app/*': 'app/*.js' 
     }, 

     ... 
    }, 
0

的JSPM paths配置对我来说,最后的诀窍(karma,babel,JSPM/SystemJS)是这样的:

移除baseUr l在karma.conf.js和有此JSPM部分:

jspm: { 
     config: 'config.js', 
     loadFiles: [ 
      'www/**/*.spec.js' 
     ], 
     serveFiles: [ 
      'www/**/!(*spec).js' 
     ], 
     paths: { 
      "github:*": "/base/jspm_packages/github/*", 
      "npm:*": "/base/jspm_packages/npm/*", 
      'www/*': '/base/www/*' 
     } 
    },