2012-10-15 11 views
6

Ho appena installato TypeScript come pacchetto Node.js e con mia sorpresa sembra funzionare subito. Ma non riesco a trovare un modo per intercettare eventuali messaggi che potrebbe generare. Facendo le seguenti operazioni con un file greeter.ts che ha un errore intenzionaleTypeScript tsc> reindirizzamento dei messaggi

tsc greeter.ts > err.log 

conferma che nessun reindirizzamento si sta verificando. Qualcuno sa come risolvere questo? Voglio farlo in modo da poter raccogliere errori nel mio editor.

A proposito, ho notato che tsc accetta solo nomi di file in minuscolo. L'esecuzione di tsc GREETER.TS restituisce un errore durante la lettura del file "GREETER.TS": file non trovato.

In risposta al commento di Sohnee: No, tsc sta sicuramente inviando un messaggio di errore, è solo che non posso reindirizzarlo. Il mio file greeter.ts, completo di errore intenzionale è:

function greeter(person) { 
    return "Hello, " + person; 
} 
var user = "Jane User"; 
undeclared 
document.body.innerHTML = greeter(user); 

Da una shell del sistema operativo ottengo quanto segue.

C:\K_F90\F90WX\BOOKS\THENOD~1>tsc greeter.ts 
C:/K_F90/F90WX/BOOKS/THENOD~1/greeter.ts(7,0): The name 'undeclared' does not exist in the current scope 

Ma quando provo a riorientare ottengo:

C:\K_F90\F90WX\BOOKS\THENOD~1>tsc greeter.ts > err.log 
C:/K_F90/F90WX/BOOKS/THENOD~1/greeter.ts(7,0): The name 'undeclared' does not exist in the current scope 
C:\K_F90\F90WX\BOOKS\THENOD~1>type err.log 
C:\K_F90\F90WX\BOOKS\THENOD~1> 

Abbastanza conclusiva penso; un messaggio di errore viene emesso ma non viene reindirizzato su err.log, che è vuoto.

risposta

4

L'operatore > reindirizza solo lo stdout. Gli errori vengono scritti su stderr. Per reindirizzare anche stderr, aggiungere 2>&1 al comando. Informazioni sullo sfondo is here.

+0

Funziona perfettamente. Grazie Diullei e Hans per le informazioni. Keith – user1747344

1

uso Prova:

tsc greeter.ts > err.log 2>&1

questo ha funzionato bene per me.