Angular2测试,SystemJS无法加载模块
我的环境设置非常类似于官方的Angular2 quickstart,但有一个区别:我使用的不是Angular2测试,SystemJS无法加载模块,angular,karma-runner,karma-jasmine,Angular,Karma Runner,Karma Jasmine,我的环境设置非常类似于官方的Angular2 quickstart,但有一个区别:我使用的不是public/src/app,而是public/app 尝试使用ViewChild测试组件时: @ViewChild('profileModal') profileModal: ModalComponent; 加载在被测部件中的: import { ModalComponent } from 'ng2-bs3-modal/ng2-bs3-modal'; npm测试显示此错误: 05 05 2017
public/src/app
,而是public/app
尝试使用ViewChild
测试组件时:
@ViewChild('profileModal')
profileModal: ModalComponent;
加载在被测部件中的:
import { ModalComponent } from 'ng2-bs3-modal/ng2-bs3-modal';
npm测试
显示此错误:
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
从/base/npm_模块/ng2-bs3-modal/ng2-bs3-modal
而不是/base/ng2-bs3-modal/ng2-bs3-modal
加载,因为它正在尝试
使用SystemJs
而不是Webpack
您应该将其放入karma.config文件的文件部分,如下所示:
files: [ 'node_modules/ng2-bs3-modal/ng2-bs3-modal.js' ]
不确定您的配置文件中是否已经有该部分,但为了以防万一,请记住,您可以传递systemjs配置,让它加载您的应用程序及其依赖项:
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',
]
你可以参考这个来了解更多的细节
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',
]