angular2 找不到名称要求
Posted
技术标签:
【中文标题】angular2 找不到名称要求【英文标题】:angular2 cannot find name require 【发布时间】:2017-01-29 03:21:02 【问题描述】:我想在我的应用程序中使用一个名为 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/app/module.js 将http://192.168.0.46:3002/ng2-material-select 加载为“ng2-material-select”时出错
node_modules/ng2-material-select/index.ts 中也有以下错误,我认为这可能会导致加载问题:
找不到名称要求:
const components = require('./ng2-select.bundle.js');
我更新了 angularjs 和 typescript,但问题仍然没有解决。
请帮帮我。
【问题讨论】:
你有没有像这样在你的 AppModule 中添加 Ng2SelectModule -import Ng2SelectModule from '../src/ng2-select.module';
是的,在 module.ts 我有 import Ng2SelectModule from 'ng2-material-select';
【参考方案1】:
我相信你的 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 文件试图要求的文件)。
【讨论】:
【参考方案2】:我通过在打字稿文件中添加以下行来解决它:
declare function require(fileName: string): any;
然后,在构造函数中,读取一个 json 文件:
this.myConfig = require('../assets/config.' + location.hostname + '.json');
【讨论】:
以上是关于angular2 找不到名称要求的主要内容,如果未能解决你的问题,请参考以下文章
Angular2 代码中的 TypeScript 错误:找不到名称“模块”