2012-10-15 2 views
6

Я только что установил TypeScript как пакет Node.js, и к моему удивлению, похоже, что он работает сразу. Но я не могу найти способ перехватить любые сообщения, которые он может генерировать. Выполнение следующих действий с файлом greeter.ts, который имеет намеренный ошибкуTypeScript tsc> перенаправление сообщений

tsc greeter.ts > err.log 

подтверждает, что ни Перенаправление не происходит. Кто-нибудь знает об этом? Я хочу сделать это, чтобы я мог подобрать ошибки в моем редакторе.

Кстати, я заметил, что tsc принимает только имена файлов в нижнем регистре. Выполнение tsc GREETER.TS дает файл с ошибкой «GREETER.TS»: файл не найден.

В ответ на комментарий Sohnee: Нет, tsc, безусловно, выдает сообщение об ошибке, просто я не могу перенаправить его. Мой файл greeter.ts с умышленной ошибкой:

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

Из оболочки операционной системы я получаю следующее.

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 

Но когда я пытаюсь перенаправить я получаю:

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> 

Довольно убедительное я думаю; выдается сообщение об ошибке, но не перенаправляется на err.log, который пуст.

ответ

4

Оператор > перенаправляет только команду. Ошибки записываются в stderr. Чтобы также перенаправить stderr, добавьте команду 2>&1 в команду. Сводная информация is here.

+0

Работает отлично. Спасибо Диллей и Хансу за информацию. Keith – user1747344

1

Try использование:

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

это работало хорошо для меня.

Смежные вопросы