2013-08-26 17 views
11

Właśnie zaktualizowałem do najnowszej wersji WebEssentials v3, a pliki TS w moim projekcie ASP MVC 4 nie kompilują się już do JS. Potwierdziłem, że opcje Opcje -> Edytor tekstu -> TypScript -> Projekt -> Automatycznie kompiluj pliki TypeScript, które są częścią opcji projektu, jest zaznaczona, ale nic się nie dzieje, gdy zapisuję lub kompiluję mój projekt. Próbowałem usunąć istniejące pliki .js i .min.js utworzone przez WE2, ale to nie pomogło. Próbowałem dodać nowy plik TS do mojego projektu, który nie generował pliku JS. Ponownie zainstalowałem TS 0.9.1.1 i to nie pomogło.TypeScript nie kompiluje się z WE3 i TS 0.9.1.1

Sooooo co robić? Czy brakuje mi czegoś oczywistego? Czy coś nie działa lub czy mam po prostu złe oczekiwania?

Czy muszę wrócić do WE2?

Aktualizacja: Stworzyłem nawet nowy projekt ASP MVC 4 C#, aby zweryfikować, że nie był to tylko mój oryginalny projekt, ale uzyskałem takie same wyniki.

Co ciekawe, właśnie stworzył nowy projekt maszynopis i moje pliki TS skompilowany poprawnie zapisać na ... Więc to ciekawe ..

+0

Wszystko to zostało wyjaśnione na stronie Wiki "Kompilacja-zapisywanie" na TypeScript: https://typescript.codeplex.com/wikipage?title=Compile-on- Save – Jaben

Odpowiedz

10

Istnieje kilka linków w change log WE3, tutaj jest ten, który opisuje, jak włączyć funkcję kompilacji na zapis, patrz http://typescript.codeplex.com/wikipage?title=Compile-on-Save, aby uzyskać szczegółowe informacje.

Stworzyłem pakiet nuget o nazwie Ltc.MSBuild.TS0911WE3.targets, który załatwi sprawę za Ciebie, po prostu otwórz Package Manager Console, wpisz Install-Package Ltc.MSBuild.TS0911WE3.targets!

Przejdź na stronę Ltc.MSBuild.TS0911WE3.targets na stronie nuget.org.

+0

Doskonały. Stworzyłem projekt testowy, aby sprawdzić, czy to działa. Jest to bardziej eleganckie rozwiązanie niż kopiowanie/wklejanie całego wymaganego kodu do pliku .xproj. –

+0

Dziękujemy! To bardzo pomogło. – Doug

+0

Hm, nie działa dla mnie. Kompiluje kompilację, ale nie oszczędza. : / – Gleno

2

upewnić się, że plik .proj posiada sekcję TypeScriptCompile XML. Możesz skopiować z projektu maszynopisu, jeśli go nie ma.

Oto specyfikacja: https://msbuildtypescript.codeplex.com/

+0

HI @bassara. Jak rozumiem, to zalecenie dodaje funkcję "Kompiluj TS na temat kompilacji projektu" do pliku .xproj. To rozsądny dodatek, ale nie dokładnie to, o co pytałem w PO. Przepraszam, jeśli pytanie było źle sformułowane. Ponadto, po dodaniu swoją rekomendację do mojego pliku projektu, otrzymuję ten błąd na kompilacji: Błąd 1 „CompileTypeScriptFiles” Zadanie nie może być załadowany z C-montażowej: \ Projects \ test \ NewTsWeTest \ NewTsWeTest \ MSBuild.TypeScriptCompile .dll. Nie można załadować pliku lub zespołu ... –

3

Nie jestem pewien, czy jest to właściwa metoda radzenia sobie z tym problemem, ale tutaj jest to, co zrobiłem, aby „skompilować na Save” działa na moim projekcie ...

Po zauważeniu, że kompilacja przy zapisie zadziałała podczas rozpoczynania pracy z nowym projektem HTML z TypeScript, dokonałem porównania między tym i moim niepracującym projektem ASP MVC. Okazuje się, że mój projekt ASP MVC brakowało ten kawałek kodu ..

<PropertyGroup Condition="'$(Configuration)' == 'Debug'"> 
    <TypeScriptTarget>ES3</TypeScriptTarget> 
    <TypeScriptRemoveComments>false</TypeScriptRemoveComments> 
    <TypeScriptSourceMap>true</TypeScriptSourceMap> 
    <TypeScriptModuleKind>AMD</TypeScriptModuleKind> 
    </PropertyGroup> 
    <PropertyGroup Condition="'$(Configuration)' == 'Release'"> 
    <TypeScriptTarget>ES3</TypeScriptTarget> 
    <TypeScriptRemoveComments>true</TypeScriptRemoveComments> 
    <TypeScriptSourceMap>false</TypeScriptSourceMap> 
    <TypeScriptModuleKind>AMD</TypeScriptModuleKind> 
    </PropertyGroup> 
    <Import Project="$(VSToolsPath)\TypeScript\Microsoft.TypeScript.targets" /> 

kopiowania/wklejania, że ​​do mojego projektu ASP MVC dał mi skompilować Zapisz wsparcia ponownie. Oczywiście nadal nie jest to dokładnie to, czego się spodziewałem. Wynikowe pliki JS nie są automatycznie dodawane do projektu, więc musiałem to zrobić ręcznie. Musiałem również ręcznie zgrupować plik JS z plikiem TS, aby naśladować to samo doświadczenie, które otrzymywałem z WE2.

Nadzieję, że pomaga komuś. Chciałbym usłyszeć pewne opinie na temat rozwiązania.

+0

+1 dzięki za udostępnienie. Następne wydanie prawdopodobnie będzie miało lepsze wsparcie. Osobiście używamy funkcji https://github.com/basarat/grunt-ts – basarat

+0

Dzięki za udostępnienie tego - działa, ale frustrująco oznacza to również, że musisz zainstalować TypeScript na swoim serwerze budowania (jeśli taki posiadasz). To frustrujące, że opcja oznaczona "Kompiluj przy zapisie" jest w rzeczywistości "Kompilacja na Zapisz lub Buduj" w rzeczywistości. Na razie zdecydowałem się powrócić do Web Essentials 2.9, więc otrzymuję możliwość samodzielnego "Kompilowania na Zapisz". –

1

używając "Podstawowe informacje o sieci" Narzędzie (wolna, polecam) umożliwiają okienko podglądu w opcjach internetowych eterycznych

Narzędzia -> Opcje -> Web Essentials -> Typescript: Pokaż Okienko podglądu [ X]

Teraz za każdym razem, gdy zapisujesz otwarty plik TS, podstawowe informacje o sieci zapewniają, że plik się kompiluje (aby mógł go wyświetlić) i możesz zaktualizować kod javascript podczas pracy projektu.

Powiązane problemy