【问题标题】:angular2 cannot find name requireangular2 找不到名称要求
【发布时间】: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.jshttp://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';

标签: angular typescript require


【解决方案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');
    

    【讨论】:

      猜你喜欢
      • 2017-11-03
      • 2016-01-28
      • 2021-03-09
      • 2017-10-14
      • 1970-01-01
      • 2017-06-29
      • 2017-04-08
      • 2018-01-30
      • 2017-12-29
      相关资源
      最近更新 更多