2017-05-05 1 views
0

Meine Umgebung ist sehr ähnlich wie der offizielle Angular2-Quickstart mit einem Unterschied: anstelle von public/src/app habe ich public/app.Angular2-Test, SystemJS kann Module nicht laden

Beim Versuch, ein testen Component mit einem ViewChild:

@ViewChild('profileModal') 
profileModal: ModalComponent; 

, die in der zu testenden Komponente als geladen wird:

import { ModalComponent } from 'ng2-bs3-modal/ng2-bs3-modal'; 

npm test zeigt diesen Fehler:

05 05 2017 17:45:48.218:WARN [web-server]: 404: /base/ng2-bs3-modal/ng2-bs3-modal 
[1] Chrome 58.0.3029 (Mac OS X 10.12.2) ERROR 
[1] { 
[1]  "originalErr": { 
[1]  "__zone_symbol__currentTask": { 
[1]   "type": "microTask", 
[1]   "state": "notScheduled", 
[1]   "source": "Promise.then", 
[1]   "zone": "<root>", 
[1]   "cancelFn": null, 
[1]   "runCount": 0 
[1]  } 
[1]  }, 
[1]  "__zone_symbol__currentTask": { 
[1]  "type": "microTask", 
[1]  "state": "notScheduled", 
[1]  "source": "Promise.then", 
[1]  "zone": "<root>", 
[1]  "cancelFn": null, 
[1]  "runCount": 0 
[1]  } 
[1] } 

karma.config.js : [Kürze halber elided]

module.exports = function(config) { 
    var appBase = 'app/';  // transpiled app JS and map files 
    var appSrcBase = appBase;  // app source TS files 

    config.set({ 
    basePath: '.', 

    proxies: { 
     '/base/node_modules/': '/base/node_modules/' 
    }, 
    }) 
} 

Wie kann ich karma erzählen von /base/npm_modules/ng2-bs3-modal/ng2-bs3-modal statt /base/ng2-bs3-modal/ng2-bs3-modal, zu laden, wie es versucht.

Verwendung SystemJs anstelle von Webpack.

Antwort

1

Sie sollten es in den Dateien Abschnitt der karma.config Datei setzen, wie folgt aus:

files: [ 'node_modules/ng2-bs3-modal/ng2-bs3-modal.js' ] 

Nicht sicher, ob Sie bereits diesen Abschnitt in der Config-Datei haben, aber nur für den Fall im Auge behalten, dass Sie Ihre systemjs Konfiguration passieren können, um es Ihre App und ihre Abhängigkeiten zu lassen laden:

files: [ 
    // System.js for module loading 
    'node_modules/systemjs/dist/system.src.js', 

    // Load any lib not included in systemjs.config here, like zone.js 
    'node_modules/zone.js/dist/zone.js', 

    // RxJs 
    { pattern: 'node_modules/rxjs/**/*.js', included: false, watched: false }, 
    { pattern: 'node_modules/rxjs/**/*.js.map', included: false, watched: false}, 
    // Paths loaded via module imports: 
    // Angular itself 
    { pattern: 'node_modules/@angular/**/*.js', included: false, watched: false }, 
    { pattern: 'node_modules/@angular/**/*.js.map', included: false, watched: false }, 

    { pattern: 'systemjs.config.js', included: false, watched: false }, 
    { pattern: 'systemjs.config.extras.js', included: false, watched: false }, 
    'karma-test-shim.js', 
] 

können Sie auf diese post, um weitere Informationen darüber zu finden.

Verwandte Themen