2017-05-05 86 views
0

我的环境设置非常像官方Angular2快速启动,有一点不同:代替public/src/app,我有public/appAngular2测试,SystemJS无法加载模块

当试图测试ComponentViewChild

@ViewChild('profileModal') 
profileModal: ModalComponent; 

其在组件装载下测试为:

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

npm test示出了这样的错误:

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 : [消隐为了简洁]

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/' 
    }, 
    }) 
} 

我怎么能告诉karma/base/npm_modules/ng2-bs3-modal/ng2-bs3-modal而不是/base/ng2-bs3-modal/ng2-bs3-modal加载,因为它试图。使用SystemJs而不是Webpack

回答

1

你应该把它放在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', 
] 

您可以参考这个post关于它的更多细节。