Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Compiling many typescript files at once resulted in File not found error

We have an MSBuild script which we use to compile all our .ts files in our project. First we create a propery group containing all the .ts files;

<ItemGroup>
   <AllTypeScriptFiles Include="XXXXX\Scripts\**\*.ts;" Exclude="XXXX\Scripts\**\*.d.ts;" /> 
</ItemGroup>

Then we dump this file list to an input file and run tsc.exe;

<WriteLinesToFile
    File="typescriptcompiler.input"
    Lines="@(AllTypeScriptFiles)"
    Overwrite="true"
    Encoding="Unicode"/>    

<Exec Command="&quot;$(MSBuildProgramFiles32)\Microsoft SDKs\TypeScript\$(TypeScriptVersion)\tsc&quot; --target ES5 @typescriptcompiler.input"
      CustomErrorRegularExpression="\.ts\([0-9]+,[0-9]+\):(.*)"
      IgnoreExitCode="true" >
</Exec>

Now, the output states that some files can not be found;

Error reading file "XXXXX.ts": File not found

This happens to some files, but if I run tsc.exe giving the exact same path as the error message I get no errors and the file is compiled.

If I rather compile each file in sequence instead:

<Exec Command="&quot;$(MSBuildProgramFiles32)\Microsoft SDKs\TypeScript\$(TypeScriptVersion)\tsc&quot; --target ES5 &quot;%(AllTypeScriptFiles.Identity)&quot;"
      CustomErrorRegularExpression="\.ts\([0-9]+,[0-9]+\):(.*)"
      IgnoreExitCode="true" >
</Exec>

All files are compiled without problems, except it takes 5 minutes instead of 10 seconds...

like image 1000
Julius Avatar asked Dec 14 '25 06:12

Julius


1 Answers

Typescript version 0.8.3 solves this problem! No more erros.

I am now able to compile all the files with one go:

<ItemGroup>
   <AllTypeScriptFiles Include="XXXXX\Scripts\**\*.ts;" Exclude="XXXX\Scripts\**\*.d.ts;" /> 
</ItemGroup>

<WriteLinesToFile
    File="typescriptcompiler.input"
    Lines="@(AllTypeScriptFiles)"
    Overwrite="true"
    Encoding="Unicode"/>    

<Exec Command="&quot;$(MSBuildProgramFiles32)\Microsoft SDKs\TypeScript\$(TypeScriptVersion)\tsc&quot; --target ES5 @typescriptcompiler.input"
      CustomErrorRegularExpression="\.ts\([0-9]+,[0-9]+\):(.*)">
</Exec>
like image 94
Julius Avatar answered Dec 16 '25 22:12

Julius



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!