2016-11-07 263 views
1

我正在嘗試使用VS Code 1.6.1將基於Javascript的快速項目轉換爲Typescript。我現在可以在Typescript中添加新文件並將它們編譯爲Javascript。但是我每次編譯打字稿文件時,我得到的錯誤的一個長長的清單 - 每個現有的(傳統)JavaScript文件一個 - 說在VS Code的每個Typescript編譯中獲得「錯誤TS5055 ..」消息的風暴

錯誤TS5055:不能寫入文件XYZ.js,因爲它會覆蓋輸入文件

我該如何解決這個問題?

我tsconfig看起來像這樣

 

{ 
    "compilerOptions": { 
     "module": "commonjs", 
     "sourceMap": true, 
     "watch": true, 
     "allowJs": true 
    } 
} 
+0

請用你的'tsconfig.json'文件更新你的問題 –

回答

2

導致此問題,因爲打字稿編譯器試圖transpile一切,包括那些已經JavaScript的,在這種情況下,它可以理解抱怨說,它會覆蓋其輸入文件。我發現沒有可以阻止這種行爲的「包含」和「排除」語句的組合。

的解決方案是增加一個新的領域,「OUTDIR」,到compilerOptions,所以它看起來像這樣

 

{ 
    "compilerOptions": { 
     "module": "commonjs", 
     "sourceMap": true, 
     "watch": true, 
     "allowJs": true, 
     "outDir": "generated" 
    } 
} 

這將導致TSC到項目中的所有TS和JS複製到指定的文件夾。將不再有那些討厭的TS5055錯誤。

如果項目中的導入引用都是相對的,這應該沒問題。否則例如如果您的node.js項目在頂層使用「public」文件夾,則可能需要相應地修改代碼中的路徑引用。