2016-03-15 10 views
22

Sto provando ad impostare un'applicazione Express/node TypeScript in Visual Studio Code seguendo lo Microsoft guide ma cambiandolo per usare TypeScript tuttavia quando si tratta di installare le definizioni di tipo usando typings mi sembra installare più pacchetti rispetto alla guida.Importazione di nodi ed espressioni con digitazioni in TypeScript

sto correndo la seguente coppia di comandi:

typings install node --ambient --save 
typings install express --ambient --save 

Tuttavia tentare di costruire con solo quei pacchetti ha pronunciato la seguente tipo di errore:

error TS2307: Cannot find module 'serve-static'. 

Per i seguenti tipizzazioni:

  • mime
  • express-serve-s Tatic-core
  • servire-statica

posso risolvere questo installando le tipizzazioni richieste ma sembra che qualcosa tipizzazioni dovrebbe fare da solo.

Volevo verificare se mancava un passaggio fondamentale per l'estrazione automatica delle dipendenze o se la guida era obsoleta?

Nel caso in cui sia rilevante, il mio tsconfig.json:

{ 
    "compilerOptions": { 
     "target": "es5", 
     "module": "commonjs", 
     "sourceMap": true, 
     "outDir": "bin", 
     "sourceRoot": "src" 
    }, 
    "exclude": [ 
     "node_modules", 
     "typings/browser.d.ts", 
     "typings/browser" 
    ] 
} 

mio TSC è la versione 1.8.7 e ho dattiloscritto installato a livello globale.

+1

Mentre sarebbe bello se tirasse le dichiarazioni ambientali oggi, al momento non lo fa e probabilmente non cambierà. Vedi [questo problema] (https://github.com/typings/typings/issues/113) e [questo commento] (https://github.com/typings/typings/issues/281#issuecomment-192551121) – cdbajorin

+0

Solo una nota a margine che ora "ambient" è deprecato: 'typings ERR! deprecato Il flag "ambient" è deprecato. Si prega di utilizzare "globale" invece ' – Musa

risposta

27

A partire dalla release di dattiloscritto 2,0 mesi scorso, lo strumento consigliato per l'installazione di tipizzazioni è il nostro fidato vecchio amico npm anziché typings o tsd.

npm install @types/node --save 

Con npm, non è più necessario preoccuparsi delle installazioni "globali" o "ambientali".

Inoltre, non è più necessario aggiungere i tag <reference> all'inizio dei file di origine; solo cadere la seguente proprietà nel vostro compilerOptions in tsconfig.json, e il compilatore dattiloscritto si trova automaticamente le tipizzazioni NPM è stato installato:

"typeRoots": [ "node_modules/@types" ] 

Ecco un post che spiega il cambiamento in qualche modo più dettagliato: https://blogs.msdn.microsoft.com/typescript/2016/06/15/the-future-of-declaration-files/

+4

'@ types'modules sono definiti come predefiniti per typedeclarations in typescript 2. Per questo motivo' "typeroots": ["node_modules/@ types']' non è necessario fintanto che è l'unica cartella di battitura –

+1

Questo è incredibile ! Quello che mi ha salvato la vita. Le tipizzazioni sono diventate piuttosto il dolore del culo – Angad

+1

Non ho avuto tempo di guardare a TypeScript per un lungo periodo, ma ora sembra funzionare per me. . – Underscore

8

Il tutorial ho linkato ora è stato aggiornato per includere i seguenti comandi:

typings install node --ambient 
typings install express serve-static express-serve-static-core --ambient 

Vedere @cdbajorin s' comment per informazioni sul motivo per cui le dipendenze non vengono scaricati automaticamente.

+8

_-- ambient_ è stato rinominato in _-- global_ in [typings-1.0.0] (https://github.com/typings/typings/releases/tag/v1.0.0) –

+2

Inoltre (per quanto posso capire) il repository predefinito per l'installazione è ora npm. C'è un nuovo repository aggiunto chiamato env che contiene dichiarazioni di tipo per ambienti (come il nodo). Io ho usato: 'typings install [email protected] --save --global' Non sono sicuro se la situazione con le dipendenze globali delle tue dipendenze sia cambiata con questo. –

1

salvare tutti un mal di testa, il comando magia per ottenere le tipizzazioni per il nodo è ora:

typings install node --source env --global --save

Problemi correlati