2016-11-19 91 views
3

我有一個後期構建事件,它在我的一些控制器上運行反射代碼,以在打字稿中生成我的路線的定義。如果我激活我的csproj中的TypescriptCompile選項,如果任何Typescript文件不正確,則DLL生成將失敗。然後,我的發佈後事件將失敗,因爲該DLL不存在。如何在後期構建事件中啓動Typescript編譯

我要實現以下模式:

  1. 建立我的dll沒有打字稿編譯
  2. 運行我的後生成事件,產生與我的路線定義
  3. 再跑後生成事件,以將輸出文件編譯/驗證ts文件失敗,如果他們不正確

前2個步驟工作正常,但我卡在最後一個。無法找到命令行在csproj文件上運行打印機編譯。

+0

您的項目是否包含'tsconfig.json'文件? – yuxhuang

+0

不,但我可以包括一個,如果我不必爲每個ne ts文件添加一個新條目 – Dreeco

回答

0

我們假設在生成後事件中生成了TypeScript源文件.\tsc-src。並且您正在使用TypeScript 2.0。

可以包括tsconfig.json文件中tsc-src文件夾下面的內容:

{ 
    "compilerOptions": { 
    "baseUrl": "", 
    "declaration": false, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "lib": ["es6", "dom"], 
    "mapRoot": "./", 
    "module": "es6", 
    "moduleResolution": "node", 
    "outDir": "../tsc-dist", 
    "sourceMap": true, 
    "target": "es5" 
    } 
} 

假設你的工作目錄是在項目文件夾,如果你已經安裝了打字稿和tsc在你PATH,你可以添加一個新的構建後事件命令tsc -p ./tsc-src來編譯TypeScript源文件。

根據您的要求,您可能需要將outDir字段更改爲outFile字段以發出單個JavaScript文件。這是文檔的pointer

+0

我的回答很晚,還沒有找到時間來嘗試您的解決方案。但是看起來,在您的解決方案中,所有我的ts/js文件的層次結構和組織都將受到影響。我正在尋找一種基於csproj的方法來保持同一個組織。有沒有解決方案,我的所有csproj ts文件將輸出js在一個js文件中具有相同的名稱,並在同一文件夾? (我在說[[outDir]:「../tsc-dist」]指令) – Dreeco

+0

@Dreeco我很好奇你爲什麼想將ts文件放在同一個文件夾中?你也檢查他們到你的回購以及? – yuxhuang

+0

@Dreeco我認爲你可以簡單地刪除'outDir'字段來實現你的目標。不過,我從來沒有使用沒有'outDir'或'outFile'選項的'tsconfig.json'。 – yuxhuang

相關問題