Jak mogę dodać maszynopis do istniejącego projektu Asp.Net MVC?

głosy
41

Kocham ideę maszynopisu, ale nie wydaje się, aby dowiedzieć się, jak umieścić go w projekcie ASP.Net MVC. Mam już zainstalowane Visual Studio rozszerzenie, ale nie wydaje się znaleźć przykład lub dokumentację na temat sposobu dodawania *.tsplików, które skompilować do *.jsplików.

Edit: Właściwie powinienem replikować sposób, że przykład Win8 .jsprojobejmuje i obsługuje .tspliki? Czy będzie to działać tylko na projekty HTML / JS Win8?

Utwórz 01/10/2012 o 21:22
źródło użytkownik
W innych językach...                            


6 odpowiedzi

głosy
24

Ostrzeżenie: Ta odpowiedź jest teraz dość stare, jak i zarówno Typescript MVC zmieniła się znacząco od tej odpowiedzi. Postaram aktualizacji później. - Richcoder

Dzięki Sohnee na odpowiedź.

Możesz dodać pliki maszynopis do istniejącego projektu za pomocą Add> dialogowe nowego elementu. exampleImage Należy pamiętać, że pozycja „Maszynopis Plik” nie ma miejsca zamieszkania w grupie internetowej, ale pod jego rodzic w tym przypadku Visual C #.

Należy dodać plik maszynopisu i Visual Studio zrobi resztę.

Następnie trzeba dodać te linie do pliku projektu:

 <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>

To działało idealnie dla mnie, ale proszę komentować jeżeli napotkasz żadnych problemów.

Odpowiedział 03/10/2012 o 00:38
źródło użytkownik

głosy
19

To jest poprawne. Wszystko czego potrzebujesz to ms budować cel zbudować pliki .TS w js plików. Przykład Win8 pokazuje cel beforeBuild aby zadzwonić TSC na wszystkich plików należących do ItemGroup TypeScriptCompile, który jest zdefiniowany jako $ (ProjectDir) ***. Ts (lub wszystkie pliki .TS w projekcie).

Replikacja ten wzór powinien działać w każdym projekcie MSBuild, a nie tylko projekty Win8.

Oto próbka tego, co mówię: Dodaj to do każdego projektu msbuild i powinno być żadnych kompilacji pliku .ts do akt equivialnt .js podczas uruchamiania kompilacji ..

<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>
Odpowiedział 01/10/2012 o 23:14
źródło użytkownik

głosy
7

Rzuciłem razem pakiet Nuget który dodaje plik cele msbuild do projektu. to będzie działać kompilator TSC i oczyścić swoje wyjście, dzięki czemu można dwukrotnie kliknąć na błędy w Visual Studio i przejść do pliku / wiersza / kolumny.

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

Trzeba ustawić akcji Zbuduj we właściwościach okna na „TypeScriptCompile” na wszystko, co chcesz TSC skompilować. Od kilku dni majstrować przy maszynopis, Znalazłem, że pliki .TS że robią odniesienie powinno być ustawione na TypeScriptCompile, ale pliki są tylko do którego odwołuje się nie powinno, ale YMMV. Ponadto, może być konieczne, aby pokazać wszystkie pliki i dodać oryginalnego pliku js. Jeśli chcesz pogrupować powiązane .TS / js / .d.ts plików razem, spójrz na rozszerzenie VsCommands. Workflow jest również bardzo ładne z NetDemon / podobnych rozszerzeń.

Odpowiedział 04/10/2012 o 01:55
źródło użytkownik

głosy
4

Jeśli używasz wiązania i minifikacji , właśnie wydała realizację IBundleTransform że kompiluje maszynopis do JavaScript. Jest na GitHub i Nuget (Instaluj-Pakiet TypeScriptBundleTransform). Jeżeli nie jesteś jeszcze za pomocą wiązania i minifikacji warto wygląd!

Odpowiedział 07/10/2012 o 23:51
źródło użytkownik

głosy
3

aktualizacja:

Wystarczy zainstalować Essentials Web 2012 wtyczki, trzeba będzie zaoszczędzić na automatyczną kompilację - zarówno dla .js i .min.js i schludny widoku podzielonego, aby zobaczyć wyjście JavaScript obok kodu maszynopis.


Jest to surowy metoda używam:

Kliknij prawym przyciskiem myszy swój projekt> Właściwości> Budowanie pakietowe

Skrzynka prebuild wkleić (rekurencyjnie tworzy wszystkie pliki .TS w projekcie):

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

Na budowę konkretnego pliku wejścia:

tsc $(ProjectDir)MyScripts/myfile.ts

Jestem pewien, że istnieje lepszy sposób to zrobić.

Odpowiedział 02/10/2012 o 02:10
źródło użytkownik

głosy
0

Jeśli używasz programu Microsoft ASP.NET Web Framework Optimization (aka wiązania i minifikacji), a następnie spróbuj użyć Bundle Transformer z zainstalowanym modułem BundleTransformer.TypeScript . W uzupełnieniu do kompilacji kodu maszynopis do JS, można również produkować minifikacji wygenerowanego kodu JS przy użyciu innych modułów Bundle Transformers: BundleTransformer.MicrosoftAjax , BundleTransformer.Yui , BundleTransformer.Closure , BundleTransformer.JsMin , BundleTransformer. UglifyJs i BundleTransformer.Packer .

Odpowiedział 19/10/2012 o 17:43
źródło użytkownik

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