我想在我的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个类似的问题,但它们似乎是针对不同的角度版本。
答案 0 :(得分:0)
SO上有很多错误/过时的答案,包括错误的答案:
Angular似乎让它更容易;只需将其添加到要使用节点模块的组件中:
export declare let require: any;
const ip = require('ip');
现在这可能不是达到你想要的最佳方式,因为我读到了一些关于使用'require'会对代码共享产生负面影响的事情或类似的问题。但如果有人能发表更好的答案,我会接受的!