我們有一個MSBuild腳本,我們用它來編譯我們項目中的所有.ts文件。首先我們創建一個包含所有.ts文件的propery組;立即編譯多個打字稿文件導致文件未找到錯誤
<ItemGroup>
<AllTypeScriptFiles Include="XXXXX\Scripts\**\*.ts;" Exclude="XXXX\Scripts\**\*.d.ts;" />
</ItemGroup>
然後我們將這個文件列表轉儲到輸入文件並運行tsc.exe;
<WriteLinesToFile
File="typescriptcompiler.input"
Lines="@(AllTypeScriptFiles)"
Overwrite="true"
Encoding="Unicode"/>
<Exec Command=""$(MSBuildProgramFiles32)\Microsoft SDKs\TypeScript\$(TypeScriptVersion)\tsc" --target ES5 @typescriptcompiler.input"
CustomErrorRegularExpression="\.ts\([0-9]+,[0-9]+\):(.*)"
IgnoreExitCode="true" >
</Exec>
現在,輸出狀態,一些文件無法找到;
Error reading file "XXXXX.ts": File not found
出現這種情況的一些文件,但如果我跑tsc.exe給完全相同的路徑錯誤消息我沒有得到任何錯誤,該文件編譯。
如果我寧願編譯序列中的每個文件,而不是:
<Exec Command=""$(MSBuildProgramFiles32)\Microsoft SDKs\TypeScript\$(TypeScriptVersion)\tsc" --target ES5 "%(AllTypeScriptFiles.Identity)""
CustomErrorRegularExpression="\.ts\([0-9]+,[0-9]+\):(.*)"
IgnoreExitCode="true" >
</Exec>
所有文件進行編譯沒有問題,但它僅需5分鐘,而不是10秒...
我會看看這個,但它不是我所期待的答案。在我們的文件列表中,基本上有很多「根」文件,我們的應用程序的每個部分都有一個,每個單元測試文件基本上都是它自己的根。 – Julius
我已經添加了一個可能有所幫助的替代方案。 – Fenton
是的,這是我得到「File not found」錯誤的代碼,或者是你的代碼與我的代碼不同? – Julius