angular2找不到名称要求

时间:2016-09-21 03:21:11

标签: angular typescript require

我想在我的应用程序中使用名为ng2-material-select的新组件。 将其添加到systemjs.config.js

var map = {
 'Ng2Select': '/node_modules/ng2-material-select',
 "angular2-jwt": "/node_modules/angular2-jwt/angular2-jwt"
};

var packages = {
    'Ng2Select': { main: 'index.js', defaultExtension: 'js' },
};

但是当我启动应用程序时,我面临以下错误:

  

http://192.168.0.46:3002/ng2-material-select加载为" ng2-material-select"时出错来自http://192.168.0.46:3002/app/module.js

在node_modules / ng2-material-select / index.ts中也有以下错误,我认为它可能会导致加载问题:

  

找不到名称要求:

const components = require('./ng2-select.bundle.js');

我更新了angularjs和typescript,但问题仍未解决。

请帮帮我。

2 个答案:

答案 0 :(得分:0)

我相信你的systemjs.config.js映射是错误的。

这.. ..

'Ng2Select': '/node_modules/ng2-material-select'

指向TS文件,我相信你需要指向一个JS文件。我相信你想要..

'Ng2Select': '/node_modules/ng2-material-select/dist/ng2-select.bundle.js'

在/ node_modules / ng2-material-select文件夹中查找并确保指向正确的文件。

(我相信JS文件是TS文件试图要求的文件)。

答案 1 :(得分:0)

我通过在打字稿文件中添加以下行来解决该问题:

declare function require(fileName: string): any;

然后,在构造函数中,读取一个json文件:

this.myConfig = require('../assets/config.' + location.hostname + '.json');