这篇文章是我在https://github.com/frankwallis/plugin-typescript/issues/64https://github.com/Workiva/karma-jspm/issues/112上的问题的stackoverflow重新发布

我们计划升级用于Web ui的团队堆栈,因此我们决定:

1)使用Karma作为测试启动器,使用Jasmine作为框架(之前是摩卡和自定义运行器)

2)使用TypeScript作为UMD或系统模块输出的源代码(之前为纯Javascript)

3)使用SystemJS作为模块加载器,以允许使用不同的模块类型(CommonJS,AMD,system,ES6)而不会过热(之前是RequireJS)

另外:

1)我们想直接从打字稿代码运行测试,而无需预编译并将JS存储在磁盘上

2)我们希望测试环境布局与生产布局非常接近

3)我们已经设置了业力+茉莉花+业力打字稿预处理器,并且运行良好。但是我们希望可以与JSPM / SystemJS加载程序一起使用,而在这种情况下,我们将确保我们的测试环境与使用SystemJS加载程序的生产环境相匹配。因为另一只手,我们将需要编写一些自定义的引导程序,仅用于测试。

但是我们在业力+ jspm + typescript-plugin(jspm)方面存在问题。

在JSPM'./config.js'中

    System.config({
      baseURL: "/",
      "transpiler": false,
  "packages": {
    "src": {
        "main": "test.ts",
      "defaultExtension": "ts",
      "meta": {
        "*.ts": {
          "loader": "ts"
        },
        "*.js": {
          "loader": "ts"
        }
      }
    }
  },
  paths: {
    "npm:*": "jspm/npm/*",
    "github:*": "jspm/github/*"
  },

  map: {
    "ts": "github:frankwallis/[email protected]",
    "typescript": "npm:[email protected]",
    "github:frankwallis/[email protected]": {
      "typescript": "npm:[email protected]"
    }
  }
});


在Karma配置中:

// Karma configuration
// Generated on Mon Nov 30 2015 02:58:44 GMT+0500 (RTZ 4 (зима))

module.exports = function(config) {
  config.set({
    basePath: '',
    frameworks: ['jspm','jasmine'],
    plugins:[
        "karma-jspm",
        'karma-jasmine',
        'karma-chrome-launcher'
        ],
    jspm: {
        loadFiles: ['src/test.ts'], //we just try to check one simple test
        packages: "jspm/"
    }   ,
    proxies : { // avoid Karma's ./base virtual directory
        '/src/': '/base/src/',
        '/jspm/': '/base/jspm/'
    },
    reporters: ['progress'],
    port: 9876,
    browsers: ['Chrome']
  })
}


但是出了点问题:

30 11 2015 14:53:34.564:WARN [web-server]: 404: /jspm/github/frankwallis/pl
[email protected]
Chrome 46.0.2490 (Windows 10 0.0.0) ERROR: 'Potentially unhandled rejection [6]
Error: XHR error (404 Not Found) loading http://localhost:9876/jspm/github/frank
wallis/[email protected]
    at error (http://localhost:9876/base/jspm/system.src.js?6536115be64e0ff966e0
5546f7767676fa7c03d6:1020:16)
    at XMLHttpRequest.xhr.onreadystatechange (http://localhost:9876/base/jspm/sy
stem.src.js?6536115be64e0ff966e05546f7767676fa7c03d6:1028:13)'


并且我们检查了url是否有效:因为Karma很好地服务了/jspm/github/frankwallis/[email protected]\utils.js
我不明白为什么它会尝试加载整个打字稿插件目录。

所以我们有一个问题:

1)是错误还是我们在理解/配置上失败

2)如果是我们的失败-如何解决?

3)可能我们选择了不正确的Karma + JSPM + Typescript测试方法吗?

任何建议都会有所帮助。

最佳答案

自己发现了错误:"defaultJSExtensions": true,不在。\ config.js中

关于javascript - jspm + karma + karma-jspm +插件类型脚本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33996104/

10-11 14:58