2012-10-15 32 views
6

我剛剛安裝了TypeScript作爲Node.js包,令我驚訝的是它似乎馬上就起作用了。但是我找不到攔截它可能產生的任何消息的方法。這樣做與具有故意錯誤TypeScript tsc>消息重定向

tsc greeter.ts > err.log 

一個greeter.ts文件下列確認沒有重定向發生。任何人都知道這個方法嗎?我想這樣做,所以我可以在編輯器中找到錯誤。

順便說一下,我注意到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

>運算符只重定向stdout。錯誤被寫入stderr。要重定向stderr,請將2>&1附加到該命令。背景資料is here

+0

完美地工作。感謝Diullei和Hans提供的信息。基思(Keith) – user1747344

1

嘗試使用:

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

這個工作對我好。