node.js - eroare TS2307: Nu se poate găsi modulul 'bluebird'


În prezent încerc să dezvolt o aplicație folosind Ionic 2 și Angular 2 cu versiunea Typescript. Am decis să folosesc biblioteca amqp-ts pentru a include mesagerie în aplicația mea. Am instalat biblioteca prin npm astfel:

npm install amqp-ts

Totul a decurs bine și acum am ceva de genul acesta:

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

Problemele încep acum: import biblioteca în componenta mea așa cum se face în exemplul din documentație...

import * as Amqp from "amqp-ts";

... și atunci când încerc să lansez aplicația primesc următoarele mesaje de eroare:

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. Linia legată de primul mesaj de eroare

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

2. Linia legată de al doilea mesaj de eroare (același fișier: amqp-ts.d.ts)

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

Sper că mă poți ajuta, te rog.

Răspuns #1

Pe lângă instalarea pachetelor obișnuite, trebuie să instalați tipurile TypeScript. Tipurile sunt ca fișierele header, ele conțin toate definițiile de metode/clase/interfețe.

Pentru a instala tipările, ai nevoie de un instrument de tipări. Cea mai bună metodă este să-l instalezi global, astfel încât să îl poți folosi în fiecare proiect

npm install typings --global

Atunci, instalarea noilor tipuri în cadrul proiectului tău este destul de simplă, mai întâi caută biblioteca:

typings search bluebird

Instalează-l :

typings install --save bluebird

Mai multe informații: https://github.com/typings/typings

Răspunsul #2

Și eu m-am confruntat cu aceeași problemă, dar pentru mine răspunsul de mai sus nu funcționează. În timp ce rulez pur și simplu:

npm i bluebird

rezolvarea problemei