我正在尝试在我的Angular 2项目中使用Forge(https://github.com/digitalbazaar/forge)。
我运行了以下命令:npm install node-forge
此命令在我的应用程序中创建了node-forge目录(在node-modules目录中)。
我在package.json文件中添加了node-forge引用:"node-forge": "0.6.39"
(依赖项部分)。
现在,我想使用以下代码在angular 2服务(typescript文件)中导入node-forge依赖项:
import { Injectable } from '@angular/core';
import { Forge } from 'node-forge';
@Injectable()
export class HashPasswordService {
constructor() {}
buildHash(input: string) {
var hmac = forge.hmac.create();
hmac.start('sha512', input);
hmac.update(input);
return hmac.digest().toHex();
}
}
但导入不起作用:import { Forge } from 'node-forge';
我在控制台中有以下错误(ng serve命令):
hash-password.service.ts (2, 23): Cannot find module 'node-forge'.
hash-password.service.ts (11, 16): Cannot find name 'forge'.
所以,有人知道如何导入这个node-forge依赖项(使用npm包)?我是否错过了我的过程中的一步?
感谢您的帮助!
答案 0 :(得分:2)
您需要打字稿定义以及npm包..
我不确定此软件包是否包含DefinitelyTyped
个包,因此您可以尝试
npm install typings -g
typings install node-forge
如果这不起作用,请尝试:
import { Injectable } from '@angular/core';
declare var Forge: any;
@Injectable()
export class HashPasswordService {
private forge: any;
constructor() {
this.forge = new Forge();
}
buildHash(input: string) {
var hmac = forge.hmac.create();
hmac.start('sha512', input);
hmac.update(input);
return hmac.digest().toHex();
}
}
答案 1 :(得分:0)
就import * as forge from 'node-forge'
就这样。