2015-04-07 25 views
2

我在我的編譯過程中添加了Typescript,但是我收到了Write to file failed錯誤,因爲目標js文件是隻讀的,這是因爲我將發送的js文件包含在TFS中。是否可以在本地編譯Typescript文件,但不能在構建服務器上編譯?

我知道我可以從TFS中刪除js文件,並且總是在運行中生成,但我不想那樣做,因爲我想將它們包含在項目中,如果我將其部署到生成服務器將會失敗用不在TFS中的文件做到這一點。我可以use a pre-build step to remove the Read Only attributes但這似乎kludgy。

我真正想要的是包含js文件,並有,但只有在我的本地dev的機器,而不是構建服務器的預編譯的構建,。我甚至會很高興在保存時編譯它們並且而不是在構建上。但是我找不到一種方法來完成其中的任何一種。

+0

我認爲你應該努力讓你的編譯服務器編譯打字稿文件而不​​失敗。這是需要解決的問題。 –

+0

由於該文件是隻讀的,因此失敗,這就是TFS的工作原理,沒有黑客可以繞過它。但是現在我開始認爲我應該首先在TFS中包含js文件。 –

+0

是的,不包括js文件。真的沒有必要。 –

回答

6

我知道你說過你想將它們包含在你的項目中,這就是爲什麼你想在版本控制(TFS)中包含js文件的原因,但是IMO並不是採取的方法,出於同樣的原因不檢查你的DLL。

對於TypeScript,* .ts文件是您的源代碼,* .js文件是您的編譯輸出,無論您是構建過程還是MsBuild或gulp/grunt,都可以輕鬆地再現這些輸出。

如果您使用捆綁/縮小庫,那麼您不必擔心它們中包含的文件基於文件結構而不是項目結構。您可以簡單地在必要的軟件包中包含必要的文件/目錄。

我知道這可能不是你正在尋找的答案,但我覺得它有一個地方作爲一個潛在的解決方案,以便如何處理來自ts源代碼的js文件的輸出。

+2

在閱讀你的答案後,我想我相信你是對的。感謝您的詳細解釋。 –

+0

這是一個輕微的思維轉變,因爲我們中的許多人習慣於將JS文件包含在我們的項目中,因此即使在遷移/升級/更改爲TypeScript之後也不得不加入這些文件。 – Brocco

+0

在web.config中有適當的條目時,服務器可以在請求TS文件時提供JS文件。這允許您在標記中引用TS文件,通過指示真實的源代碼來刪除維護boobytrap。 –

相關問題