2015-11-30 4 views
0

Этот пост StackOverflow репост из моих вопросов на https://github.com/frankwallis/plugin-typescript/issues/64 и https://github.com/Workiva/karma-jspm/issues/112JSPM + карма + карма-JSPM + плагин-машинопись

Мы планируем обновить наш стек команды для веб-интерфейс, поэтому мы решили:

1) использовать карму в качестве тест пусковой установки и жасмин в рамках (мокко и пользовательских бегунов до)

2) использовать машинопись для исходного кода с UMD или системного модуля из (чистый Javascript до)

3) использовать SystemJS как модуль загрузчика т о позволяют типам использовать различный модуль (CommonJS, AMD, система, 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 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 действителен : для ex /jspm/github/frankwallis/[email protected]\utils.js хорошо обслуживается кармой. Я не понимаю, почему он пытается загрузить весь каталог плагинов типов.

Итак, мы имеем вопрос:

1) Является ли это ошибка или наш провал в понимании/конфигурации

2) Если это наш провал - как это исправить?

3) Может быть, мы не выбрали правильные способы тестирования с помощью Karma + JSPM + Typcript?

Любой совет будет полезен.

ответ

1

Нашел ошибку, которую сам: "defaultJSExtensions": true, не был в \ config.js

0

Я использовал karma-uiuxengineering-jspm вместо karma-jspm..

Это вилка, которая, казалось, исправляла мои проблемы в то время и поддерживает JSPM 0.17-бета.

Репо также имеет некоторые проекты семян для angular2 и машинописи (с использованием JSPM) с испытательной средой. Это действительно помогло мне настроить мой проект.