3

我将Karma (v0.12.37)与JSPM (v0.16.2)一起用作测试运行程序。我在 karma 中添加了以下代理配置,以便正确加载 JSPM 文件:

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/babel-core@5.8.22.js
        Error loading http://localhost:9876/base/jspm_packages/npm/babel-core@5.8.22.js
        Error loading http://localhost:9876/base/app/pages/examples/todo-example/todo.controller.test.js'

调试日志给出:

proxying request - /base/jspm_packages/npm/babel-core@5.8.22.js to localhost:9876
/base/app/jspm_packages/npm/babel-core@5.8.22.js { host: 'localhost',
  port: 9876,
  baseProxyUrl: '/base/app/jspm_packages/',
  https: false }

但是以下包含“app”的网址可以正常工作:

http://localhost : 9876/base/app/jspm_packages/npm/babel-core@5.8.22.js

关于出了什么问题的任何线索?

4

4 回答 4

5

尝试:

proxies: {
  '/app/': '/base/app/',
  '/jspm_packages/': '/base/jspm_packages/'
}
于 2015-09-18T22:31:08.240 回答
2

如果您已使用“/”的 baseUrl 配置您的 jspm-config,请尝试删除 baseUrl 条目,因为 karma-jspm 不支持自定义 baseUrl。然后你应该能够摆脱 jspm_packages 的“代理”条目。

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

于 2015-10-09T15:38:21.760 回答
0

最终对我(karma、babel、JSPM/SystemJS)有什么帮助是拥有这个:

从 karma.conf.js 中删除 baseUrl 并拥有这个 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/*'
        }
    },
于 2016-02-09T11:11:52.923 回答
0

在做了很多试验和错误之后,发现了以下方法:

不要使用代理,而是更改 jspmpaths配置karma.config.js

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

        ...
    },
于 2015-10-14T18:00:56.183 回答