2015-10-06 85 views
0

我有一個場景,我們的Visual Studio Online Git託管解決方案使持續集成(CI)構建成功完成,但本地存在構建錯誤。TypeScript錯誤會破壞CI構建嗎?

VS.NET解決方案本地的這些構建錯誤是獨立於TypeScript構建錯誤的。我的理解是,TypeScript構建錯誤肯定會導致本地構建失敗,但不會阻止CI構建服務器成功完成。這是因爲tsc.exe TypeScript編譯器將簡單地將.ts文件轉換爲構建服務器上的.js文件,但任何關聯的錯誤都不會在此時被阻止。該解決方案只關心輸出.js文件,因此它們在編譯之後存在並且滿足構建服務器。

但是,我並不是100%肯定這一點,並希望澄清如果這是正確的,或者如果有其他的東西允許本地TypeScript錯誤而不是影響構建服務器的結果?

+0

以前(成功)構建的構建工件是否仍然存在於構建服務器上?即使當前構建失敗,因爲前一個構建的輸出'.js'文件存在,其他構建可能會成功。如果是這樣,由於預期的代碼生成不會發生,您會發現運行代碼的問題。 –

+0

即使他們做了.js文件也沒有構建服務器編譯檢查,因爲它只是一種腳本語言。除非完全缺失,否則即使.js不好,它仍然可以工作。這也是應用程序端口的全新構建,因此在引入.ts問題之前不會有任何成功的構建。這意味着.js文件已經創建。你是對的,但運行的代碼肯定會有問題。 – atconway

回答

2

,但不會阻止CI構建服務器無法完成全成

它很可能會導致構建失敗除非有人明確忽略從構建過程中返回的錯誤代碼(這是一個非常糟糕的想法開始)。

+0

這令人費解。深入挖掘日誌,.sln構建成功,它是我看到的一種vanilla VSO構建設置。我看不到我的本地錯誤如何不打破生成服務器。問題 - 這些TypeScript錯誤是相當新的,只有我相信,因爲我升級了我的TS工具到1.6。此TS以前工作,並突然導致構建錯誤(我即將發佈另一個問題,我不明白的問題)。無論如何,我不知道編譯服務器是否有一箇舊版本的'tsc.exe'編譯器,可以讓這些錯誤不被阻塞? – atconway

+1

'我想知道如果構建服務器有一箇舊版本的tsc.exe編譯器,這將允許這些錯誤不被阻止'確實 – basarat

+0

問題是(2)從我可以告訴的摺疊:** 1。** An服務器上較早版本的編譯器不支持TypeScript錯誤,因爲它們在該舊版本中沒有違規。 ** 2。**在'VS2015'中,在錯誤窗口中有一個選項,默認狀態爲「Build + Intellisense」。我注意到的錯誤是_Intellisense_錯誤。如果我切換到「Build Only」,那麼在構建時,錯誤在本地是非阻塞的。 – atconway