2012-10-15 10 views
6

Właśnie zainstalowałem TypeScript jako pakiet Node.js, i ku mojemu zdziwieniu wydaje się, że działa od razu. Ale nie mogę znaleźć sposobu na przechwycenie wiadomości, które mógłby wygenerować. Wykonując następujące czynności z plikiem greeter.ts który ma umyślne errorTypeScript tsc> przekierowanie wiadomości

tsc greeter.ts > err.log 

potwierdza, że ​​przekierowanie nie występuje. Ktoś może to obejść? Chcę to zrobić, abym mógł wykryć błędy w moim edytorze.

Nawiasem mówiąc, zauważyłem, że tsc przyjmuje tylko małe litery. Wykonanie tsc GREETER.TS daje błąd podczas odczytu pliku "GREETER.TS": Nie znaleziono pliku.

W odpowiedzi na komentarz Sohnee: Nie, tsc zdecydowanie wysyła komunikat o błędzie, po prostu nie mogę go przekierować. Mój plik greeter.ts, wraz z celowego błędu jest:

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

Od muszli OS otrzymuję następujący.

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 

Ale gdy próbuję przekierować uzyskać:

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> 

Dość rozstrzygające myślę; generowany jest komunikat o błędzie, ale nie jest przekierowywany do err.log, który jest pusty.

Odpowiedz

4

Operator > przekierowuje jedynie standardowe wyjście. Błędy są zapisywane na stderr. Aby również przekierować stderr, dołącz do polecenia 2>&1. Informacje o aktualnej wersji is here.

+0

Działa idealnie. Dziękuję Diullei i Hansowi za informację. Keith – user1747344

1

użycie Spróbuj:

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

ten pracował dla mnie dobry.