angular2 cannot find name 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从http://192.168.0.46:3002/app/module.js加载为"ng2-material-select"时出错

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

无法找到name:

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

我更新了angularjs和typescript,但问题仍然没有解决。

请帮帮我。

我相信你的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文件试图要求的文件)。

我通过在typescript文件中添加以下行来解决这个问题:

declare function require(fileName: string): any;

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

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

相关内容