2016-11-20 1 views
1

Я только начал добавлять модульные тесты в свое угловое приложение 2, и у меня есть кошмар, каждый раз, когда мне приходится импортировать что-то новое в мое приложение, которое я не использовал раньше, он добавляет «/ тестирование» в конце каждого импорта:Угловая 2 продолжает добавлять «/ testing» в конец моего импорта файлов - systemjs

например:

localhost:3002/node_modules/@angular/compiler/bundles/compiler.umd.js/testing 404 (Not Found) 

это сводит меня с ума, потому что я исправить одну из этой ошибки, а затем то же самое происходит с другим импортом файла, когда мне нужно импортировать что-то еще.

тока полная ошибка:

zone.js:1382 GET http://localhost:3002/node_modules/@angular/compiler/bundles/compiler.umd.js/testing 404 (Not Found)scheduleTask @ zone.js:1382ZoneDelegate.scheduleTask @ zone.js:245Zone.scheduleMacroTask @ zone.js:171(anonymous function) @ zone.js:1405send @ VM1624:3fetchTextFromURL @ system.src.js:1051(anonymous function) @ system.src.js:1781ZoneAwarePromise @ zone.js:518(anonymous function) @ system.src.js:1780(anonymous function) @ system.src.js:2809(anonymous function) @ system.src.js:3387(anonymous function) @ system.src.js:3701(anonymous function) @ system.src.js:4093(anonymous function) @ system.src.js:4556(anonymous function) @ system.src.js:4825(anonymous function) @ system.src.js:407ZoneDelegate.invoke @ zone.js:232Zone.run @ zone.js:114(anonymous function) @ zone.js:502ZoneDelegate.invokeTask @ zone.js:265Zone.runTask @ zone.js:154drainMicroTaskQueue @ zone.js:401ZoneTask.invoke @ zone.js:339 
zone.js:232 Error: (SystemJS) XHR error (404 Not Found) loading http://localhost:3002/node_modules/@angular/compiler/bundles/compiler.umd.js/testing(…)ZoneDelegate.invoke @ zone.js:232Zone.run @ zone.js:114(anonymous function) @ zone.js:502ZoneDelegate.invokeTask @ zone.js:265Zone.runTask @ zone.js:154drainMicroTaskQueue @ zone.js:401ZoneTask.invoke @ zone.js:339 
zone.js:1382 GET http://localhost:3002/node_modules/@angular/platform-browser/bundles/platform-browser.umd.js/testing 404 (Not Found) 

Я пытался исправить это путем добавления строк, как это мой systmejs.config.js:

'@angular/core/testing': "npm:@angular/core/bundles/core-testing.umd.js", каждый раз, когда новая ошибка, как она возникает и она иногда работает, а иногда нет, но это занимает много времени, независимо - это что-то не так с моим systemjs.config.js ?:

/** 
* System configuration for Angular samples 
* Adjust as necessary for your application needs. 
*/ 
(function (global) { 
    System.config({ 
    paths: { 
     // paths serve as alias 
     'npm:': 'node_modules/' 
    }, 
    // map tells the System loader where to look for things 
    map: { 
     // our app is within the app folder 
     app: 'js/app', 
     // angular bundles 
     '@angular/core': 'npm:@angular/core/bundles/core.umd.js', 
     '@angular/core/testing': "npm:@angular/core/bundles/core-testing.umd.js", 
     '@angular/common': 'npm:@angular/common/bundles/common.umd.js', 
     '@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js', 
     '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js', 
     '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js', 
     '@angular/platform-browser-dynamic/testing': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic-testing.umd.js', 
     '@angular/http': 'npm:@angular/http/bundles/http.umd.js', 
     '@angular/router': 'npm:@angular/router/bundles/router.umd.js', 
     '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js', 
     '@angular/upgrade': 'npm:@angular/upgrade/bundles/upgrade.umd.js', 
     // other libraries 
     'rxjs':      'npm:rxjs', 
     'angular-in-memory-web-api': 'npm:angular-in-memory-web-api/bundles/in-memory-web-api.umd.js', 
     'angular2-google-maps': 'npm:angular2-google-maps', 
     'angular2-google-map-auto-complete' : 'npm:angular2-google-map-auto-complete', 
     'ng2-bs3-modal': 'npm:ng2-bs3-modal', 
     "ng2-popover": "npm:ng2-popover", 
     "zone.js": "npm:zone.js" 
    }, 
    // packages tells the System loader how to load when no filename and/or no extension 
    packages: { 
     app: { 
     main: 'main.js', 
     defaultExtension: 'js' 
     }, 
     "node_modules/ng2-bs3-modal": { 
     defaultExtension: 'js' 
     }, 
     'node_modules/angular2-google-maps/core': { 
     defaultExtension: 'js', 
     main: 'index.js' 
     }, 
     rxjs: { 
     defaultExtension: 'js' 
     } 
    } 
    }); 
})(this); 

ответ

2

Вы должны отобразить testing пакетов в файлы тестирования. Например, посмотрите ваш основной конфигурации модуля

'@angular/core': 'npm:@angular/core/bundles/core.umd.js', 
'@angular/core/testing': "npm:@angular/core/bundles/core-testing.umd.js", 

Здесь @angular/core/testing отображается в файл core-testing.umd.js. Теперь посмотрим на вас компилятор конфигурации модуля

'@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js', 

Там нет соответствующих testing конфигурации. Поэтому, когда файл пытается импортировать

import { Something } from '@angular/compiler/testing` 

он принимает @angular/compiler из доступного отображения (compiler.umd.js) и добавляет testing в конце. Это не происходит с основным модулем, потому что есть отображение testing.

Так что вам нужно создать правильные сопоставления как для модуля компилятора, так и для общего модуля. Если вы посмотрите в примере в karma-test-shim of the quickstart, вы увидите все доступные модули тестирования.

'@angular/core/testing': 'npm:@angular/core/bundles/core-testing.umd.js', 
'@angular/common/testing': 'npm:@angular/common/bundles/common-testing.umd.js', 
'@angular/compiler/testing': 'npm:@angular/compiler/bundles/compiler-testing.umd.js', 
'@angular/platform-browser/testing': 'npm:@angular/platform-browser/bundles/platform-browser-testing.umd.js', 
'@angular/platform-browser-dynamic/testing': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic-testing.umd.js', 
'@angular/http/testing': 'npm:@angular/http/bundles/http-testing.umd.js', 
'@angular/router/testing': 'npm:@angular/router/bundles/router-testing.umd.js', 
'@angular/forms/testing': 'npm:@angular/forms/bundles/forms-testing.umd.js', 
Смежные вопросы