Hoe kan ik de schrijfmachine toe te voegen aan een bestaande Asp.Net MVC project?

stemmen
41

Ik hou van het idee achter typoscript, maar kan niet lijken te achterhalen hoe op te nemen in een ASP.Net MVC project. Ik heb al de installatie van de Visual Studio-extensie, maar ik kan niet schijnen om een voorbeeld of documentatie over het toevoegen vinden *.tsbestanden die afkomstig zijn in *.jsbestanden.

Edit: Eigenlijk zou ik repliceren de manier waarop de Win8 voorbeeld .jsprojomvat en behandelt .tsbestanden? Of zal die alleen werken voor HTML / JS Win8 projecten?

De vraag is gesteld op 01/10/2012 om 21:22
bron van user
In andere talen...                            


6 antwoorden

stemmen
24

Waarschuwing: Dit antwoord is nu redelijk gedateerd, omdat zowel Typescript en MVC aanzienlijk is veranderd sinds dit antwoord. Ik zal een update later proberen. - Richcoder

Dankzij Sohnee voor het antwoord.

U kunt Typescript bestanden toe te voegen aan een bestaand project met behulp van de Add> dialoogvenster Nieuw item. exampleImage Houdt u er rekening mee dat het 'logbestand' post niet onder de Web groep, maar onder het is ouder in dit geval Visual C # woonachtige.

Dit moet een logbestand toe te voegen en Visual Studio doet de rest.

Dan moet je deze regels toe te voegen aan het bestand project:

 <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; -target ES5 @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" IgnoreExitCode="true" />
 </Target>

Het werkte perfect voor mij, maar kunt u commentaar als je in de problemen uit te voeren.

antwoordde op 03/10/2012 om 00:38
bron van user

stemmen
19

Dat is juist. alles wat je nodig hebt is de ms bouwen doelstelling om het Ts bestanden te bouwen in Js-bestanden. De Win8 voorbeeld toont een beforeBuild doelstelling om TSC op alle bestanden die behoren tot ItemGroup TypeScriptCompile, die wordt gedefinieerd als $ (Projectmap) *** noemen. Ts (of alle Ts bestanden in uw project).

Het repliceren van dit patroon zou moeten werken in elk msbuild project, en niet alleen Win8 projecten.

Hier is een voorbeeld van wat ik het over heb: Voeg dit toe aan elke msbuild project, en je moet het samenstellen van elke Ts bestand in de equivialnt Js bestand wanneer je build begint ..

<ItemGroup> 
   <TypeScriptCompile Include="$(ProjectDir)\**\*.ts" />
</ItemGroup>


<Target Name="TypeScriptCompile" BeforeTargets="Build">
   <Message Text="Compiling TypeScript files" />
   <Exec Command="&quot;$(PROGRAMFILES)\Microsoft SDKs\TypeScript\0.8.0.0\tsc&quot; -target ES5 @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
</Target>
antwoordde op 01/10/2012 om 23:14
bron van user

stemmen
7

Ik gooide samen een Nuget pakket dat een msbuild targets bestand toevoegt aan uw project. Het zal de TSC-compiler lopen en schoon te maken zijn uitgang, zodat u kunt dubbelklikken op de fouten in Visual Studio en spring naar de / column bestand / lijn.

https://www.nuget.org/packages/Sholo.TypeScript.Build

Je moet de Build actie in de eigenschappen venster om 'TypeScriptCompile' set voor alles wat je TSC te compileren willen. Van een paar dagen sleutelen aan typoscript, heb ik geconstateerd dat de Ts bestanden die aan het doen zijn de verwijzing moet worden ingesteld op TypeScriptCompile, maar de bestanden die alleen worden wordt verwezen mag niet, maar YMMV. Ook kan het nodig zijn om alle bestanden weer te geven en voeg het oorspronkelijke .js bestand. Als u wilt om bij elkaar horende Ts / js / .d.ts bestanden samen, neem een ​​kijkje op de VsCommands extensie. Workflow is ook vrij mooi met NetDemon / soortgelijke extensies.

antwoordde op 04/10/2012 om 01:55
bron van user

stemmen
4

Als u gebruik maakt Bundeling en minification , ik heb net een implementatie van IBundleTransform die Typescript compileert om Javascript vrijgegeven. Het is op GitHub en Nuget (Install-Package TypeScriptBundleTransform). Als u nog geen gebruik maakt van Bundeling en minification, het is een kijkje waard!

antwoordde op 07/10/2012 om 23:51
bron van user

stemmen
3

bijwerken:

Gewoon installeren Web Essentials 2012 plugin, zul je automatisch compilatie op te redden - voor zowel js en .min.js en een nette split oog op de JavaScript-uitgang naast uw typoscript code.


Dit is een ruwe methode die ik heb gebruikt:

Klik met de rechter Project> Eigenschappen> Build Events

Voorgebouwde doos plak deze (recursief bouwt alle Ts bestanden in project):

forfiles /S /P $(ProjectDir) /m *.ts /c "cmd /c tsc @file"

Voor het bouwen van specifieke vermelding file:

tsc $(ProjectDir)MyScripts/myfile.ts

Ik weet zeker dat er een betere manier om het te doen.

antwoordde op 02/10/2012 om 02:10
bron van user

stemmen
0

Als u gebruik maakt van de Microsoft ASP.NET Web Optimization Framework (aka Bundeling en minification), dan proberen om het te gebruiken Bundle Transformer met geïnstalleerde module BundleTransformer.TypeScript . Naast het samenstellen van typoscript-code om JS, kunt u ook de productie van verkleining van de gegenereerde JS-code met behulp van andere modules van de Bundel Transformer: BundleTransformer.MicrosoftAjax , BundleTransformer.Yui , BundleTransformer.Closure , BundleTransformer.JsMin , BundleTransformer. UglifyJs en BundleTransformer.Packer .

antwoordde op 19/10/2012 om 17:43
bron van user

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more