2015-09-07 48 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/*' 
     } 
    },