首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jspm + karma + karma-jspm +plugin-jspm脚本

jspm + karma + karma-jspm +plugin-jspm脚本
EN

Stack Overflow用户
提问于 2015-11-30 18:14:15
回答 2查看 1.5K关注 0票数 0

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

我们计划为web ui升级我们的团队堆栈,因此我们决定:

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

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

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

另外:

1)我们希望直接从typescript代码运行测试,而无需预编译和将JS存储在磁盘上

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

3)我们建立了karma + jasmine + karma-typescript-preprocessor,运行良好。但是我们希望使用JSPM/SystemJS加载器,而在这种情况下,我们将确保我们的测试环境与使用SystemJS加载器的生产环境相匹配。因为另一只手,我们将需要编写一些仅用于测试的自定义引导程序。

但是我们在karma + jspm + typescript-plugin (jspm)上遇到了问题。

在JSPM './config.js‘中

代码语言:javascript
复制
    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/plugin-typescript@2.2.3",
    "typescript": "npm:typescript@1.6.2",
    "github:frankwallis/plugin-typescript@2.2.3": {
      "typescript": "npm:typescript@1.6.2"
    }
  }
});

在Karma配置中:

代码语言:javascript
复制
// 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']
  })
}

但有些地方出了问题:

代码语言:javascript
复制
30 11 2015 14:53:34.564:WARN [web-server]: 404: /jspm/github/frankwallis/pl
ugin-typescript@2.2.3
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/plugin-typescript@2.2.3
    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为ex /jspm/github/frankwallis/plugin-typescript@2.2.3\utils.js提供了良好的服务。我不明白为什么要尝试加载整个typescript插件目录。

所以我们有个问题:

1)是错误还是我们无法理解/config

2)如果这是我们的失败-如何修复它?

3)我们是否选择了不正确的方法来测试Karma + JSPM + Typescript?

任何建议都会有帮助。

EN

回答 2

Stack Overflow用户

发布于 2015-11-30 21:25:56

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

票数 1
EN

Stack Overflow用户

发布于 2017-02-11 03:32:54

我使用了karma-uiuxengineering-jspm而不是karma-jspm

它是一个fork,它当时似乎解决了我的问题,并且支持JSPM 0.17-beta。

该存储库还有一些用于angular2和typescript的种子项目(使用JSPM)以及测试环境。它真的帮助我建立了我的项目。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33996104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档