2016-05-04 284 views
2

目前我正在开发使用离子2角2打字稿版本的应用程序。我决定使用库amqp-ts在我的应用程序中包含消息。我通过NPM安装库,如:错误TS2307:找不到模块“蓝鸟”

npm install amqp-ts 

一切正常,现在我已经得到的东西是这样的:

/ app root directory 
+ node_modules 
    - amqp-ts 
     - lib 
      - amqp-ts.d.ts 
     - node_modules 
      - amqplib 
      - bluebird 
      - winston 

现在的问题出现了:我导入库到我的组成部分,它是在the documentation的例子做...

import * as Amqp from "amqp-ts"; 

...当我尝试部署应用程序,我得到了一个错误信息:

TypeScript error: C:/APPs/Test/Ionic2Angular2App/node_modules/amqp-ts/lib/amqp-ts.d.ts(2,26): Error TS2307: Cannot find module 'bluebird'. 
TypeScript error: C:/APPs/Test/Ionic2Angular2App/node_modules/amqp-ts/lib/amqp-ts.d.ts(50,12): Error TS2304: Cannot find name 'Buffer'. 

1.与所述第一错误消息

// exported Typescript type definition for AmqpSimple 
import * as Promise from "bluebird"; 
[...] 

2.与所述第二错误消息中的线的线(相同的文件:AMQP-ts.d.ts)

export class Message { 
    content: Buffer; 
    [...] 
} 

我希望你能帮助我。

+0

您是否安装该库的分型? – vintem

回答

5

除了常规软件包安装,您还需要安装TypeScript类型。类型就像头文件,它们包含所有的方法/类/接口定义。

要安装类型您需要打字工具。最好的办法是在全球范围内安装它,这样你可以在每一个项目中使用它

npm install typings --global 

然后安装新的分型里面你的项目很简单,图书馆第一个搜索:

typings search bluebird 

安装:

typings install --save bluebird 

更多信息:https://github.com/typings/typings

+0

非常感谢,它解决了第一条错误信息。我还有第二个(“无法找到名称缓冲区”),有什么想法? – AntonioMendez

+0

相同的东西,你需要知道哪个库提供缓冲区类型。缓冲区是一个内部NodeJS的东西,所以最好的办法是安装nodejs typings'类型安装 - 节点节点' – PolishDeveloper

+1

无论如何,我看到这个ampq lib stil使用TSD(https://github.com/abreits/amqp- ts/blob/master/tsd.json),检查从TSD文件的类型/迁移,它应该帮助你解决未来的问题(可能下一个错误将失踪'winston'和'when'类型)。我不确定如何处理'Typings',因为我也绑定到TSD,但是例如尝试引用'node_modules/ampq-ts/libs/typings/tsd.d.ts'文件('') – PolishDeveloper

相关问题