在Angular 2组件中使用npm包

时间:2017-09-07 01:34:01

标签: angular npm package

我想在我的Angular 4组件中使用一个可用的npm包,但我很难让它工作。该套餐被称为“IP'可从https://www.npmjs.com/package/ip

获取

我已按如下方式添加了包:

  

npm install ip --save

     

npm install --save @ types / ip

在我的app.module.ts中我有:

import { isV4Format } from 'ip';

我将isV4Format添加到app.module.ts中的导入列表

然后我尝试在我的课程中使用ip包,如下所示:

import { isV4Format } from 'ip';

export class TabValidator {
    private static _check(address: string): any {
        const ip = require('ip');
        if (!myip.isV4Format(address)) { return { 'wrongFormat': true }; }
        return null;
    }
}

编译器抱怨组件:

  

找不到姓名'要求'

和app.module.ts:

  

类型的参数' {声明:(typeof InterfacesComponent | typeof EditnicComponent | typeof AppComponent)[];我...'不能分配给' NgModule'。

类型的参数

有人可以告诉我上面有什么问题吗?我怀疑有一些问题。我在SO上发现了2个类似的问题,但它们似乎是针对不同的角度版本。

1 个答案:

答案 0 :(得分:0)

SO上有很多错误/过时的答案,包括错误的答案:

  

Cannot find name 'require' after upgrading to Angular4

     

Types not found

     

Angular 4: "Cannot find name 'require'

Angular似乎让它更容易;只需将其添加到要使用节点模块的组件中:

export declare let require: any;
const ip = require('ip');

现在这可能不是达到你想要的最佳方式,因为我读到了一些关于使用'require'会对代码共享产生负面影响的事情或类似的问题。但如果有人能发表更好的答案,我会接受的!