visual studio 2012 - Typescript kompilerar inte om det är placerat i en undermapp?


Jag har två projekt i VS2012. Ett skapades som en "HTML-app med Typescript" och ett (en DLL) där jag lade till en Typescript-fil till ett befintligt projekt (jag lade till BeforeBuild-målet till det befintliga projektet).

När jag kompilerar HTML App-projektet kompilerar det TS till JS utan problem och lägger till JS som innehåll.

När jag kompilerar min DLL får jag inga resultat från TSC... varken i mappen där jag lade TS-filen eller i roten eller någon annan mapp... jag får inga felmeddelanden eller andra ledtrådar om vad som kan vara fel.

I egenskaperna för båda projekten visas TS-filen som:

BuildAction: TypeScriptCompile
Copy to output....: Do not copy

I .csproj-filen ser avsnittet inuti itemgruppen ut så här:

<ItemGroup>
...(Lots of other "EmbeddedResources" in this ItemGroup)
    <TypeScriptCompile Include="C-DCommunication\ClientBin\CDEHTML5\cdeUX5.ts" />
    <Content Include="C-DCommunication\ClientBin\CDEHTML5\cdeUX5.js">
      <DependentUpon>cdeUX5.ts</DependentUpon>
    </Content>
...(more files in my ItemGroup)
</ItemGroup>

Det verkar för mig som om TSC-kompilatorn inte tolkar sökvägen korrekt. Kan någon verifiera?

Tack

Svar #1

När jag lägger till TypeScript i ett befintligt projekt tenderar jag att lägga till följande i min projektfil:

  <ItemGroup>
    <AvailableItemName Include="TypeScriptCompile" />
  </ItemGroup>
  <ItemGroup>
    <TypeScriptCompile Include="$(ProjectDir)\**\*.ts" />
  </ItemGroup>
  <Target Name="BeforeBuild">
    <Exec Command="&quot;$(PROGRAMFILES)\Microsoft SDKs\TypeScript\0.8.0.0\tsc&quot; @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
  </Target>

Källa

Men om du använder Web Essentials Visual Studio-tillägget kommer det att kompilera TypeScript till JavaScript när du sparar, vilket jag tycker ger ett bättre flöde i utvecklingen.

Relaterade artiklar