2013-08-26 7 views
11

Ho appena aggiornato alla versione più recente di WebEssentials v3 e i file TS nel mio progetto ASP MVC 4 non vengono più compilati in JS. Ho verificato che le opzioni -> Editor di testo -> TypeScript -> Progetto -> Compila automaticamente i file TypeScript che fanno parte di un'opzione del progetto, ma non succede nulla quando salvi o compilo il mio progetto. Ho provato a eliminare i file .js e .min.js esistenti creati da WE2, ma ciò non ha aiutato. Ho provato ad aggiungere un nuovo file TS al mio progetto e non ho generato un file JS. Ho reinstallato TS 0.9.1.1 e questo non ha aiutato.TypeScript non compilato con WE3 e TS 0.9.1.1

Sooooo cosa fare? Mi manca qualcosa di ovvio? Qualcosa non funziona o ho solo aspettative sbagliate?

Devo tornare a WE2?

Aggiornamento: Ho persino creato un nuovissimo progetto ASP MVC 4 C# per verificare che non fosse solo il mio progetto originale, ma ho ottenuto gli stessi risultati.

Abbastanza interessante, ho appena creato un nuovo progetto tipografico ed i miei file TS compilato correttamente su salvare ... Ecco, questo è interessante ..

+0

È tutto spiegato nella pagina Wiki Compilare-On-Save di TypeScript: https://typescript.codeplex.com/wikipage?title=Compile-on-Save – Jaben

risposta

10

Ci sono alcuni collegamenti nello change log di WE3, qui viene descritto come abilitare la funzione di compilazione su salvataggio, vedere http://typescript.codeplex.com/wikipage?title=Compile-on-Save per i dettagli.

Ho creato un pacchetto nuget chiamato Ltc.MSBuild.TS0911WE3.targets che farà il trucco per voi, basta aprire Package Manager Console, digitare Install-Package Ltc.MSBuild.TS0911WE3.targets!

Vai a Ltc.MSBuild.TS0911WE3.targets su nuget.org.

+0

Eccellente. Ho creato un progetto di test per verificare che funzioni. È una soluzione più elegante di copiare/incollare tutto il codice richiesto nel file .xproj. –

+0

Grazie! Questo ha aiutato molto. – Doug

+0

Hm, non funziona per me. Compilare su build, ma non su save. : / – Gleno

2

Assicurarsi che il file .proj ha una sezione TypeScriptCompile XML. È possibile copiare dal progetto dattiloscritto se non è presente.

Ecco le specifiche: https://msbuildtypescript.codeplex.com/

+0

HI @bassara. A quanto ho capito, questa raccomandazione aggiunge una funzione "Compilazione TS su compilazione del progetto" al file .xproj. Questa è un'aggiunta sensata, ma non esattamente quello che stavo chiedendo nel PO. Mi scuso se la domanda è stata formulata male. Inoltre, dopo aver aggiunto il tuo suggerimento al mio file di progetto, ottengo questo errore nella compilazione: Errore 1 L'attività "CompileTypeScriptFiles" non può essere caricata dall'assembly c: \ projects \ Test \ NewTsWeTest \ NewTsWeTest \ MSBuild.TypeScriptCompile .dll. Impossibile caricare file o assembly ... –

3

Non sono sicuro se questo è il metodo corretto di affrontare il problema, ma qui è quello che ho fatto per ottenere "compilare su Salva" lavorare sul mio progetto ...

Dopo aver notato che Compile On Save ha funzionato quando si inizia da una nuova applicazione HTML con TypeScript, ho eseguito un confronto tra quello e il mio progetto ASP MVC non funzionante. Si scopre che, il mio progetto ASP MVC mancava questo pezzo di codice ..

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

Copia/incolla che nel mio progetto ASP MVC mi ha dato compilare su Salva il supporto di nuovo. Certo, non è ancora esattamente quello che mi aspettavo. I file JS risultanti non vengono aggiunti automaticamente al progetto, quindi è qualcosa che dovevo fare manualmente. Ho anche dovuto raggruppare manualmente il file JS con il file TS per simulare la stessa esperienza che stavo ottenendo con WE2.

La speranza che aiuta qualcuno. Mi piacerebbe sentire un feedback sulla soluzione.

+0

+1 grazie per la condivisione. Il prossimo rilascio avrà un supporto migliore. Personalmente abbiamo usato grunt https://github.com/basarat/grunt-ts – basarat

+0

Grazie per aver condiviso questo - funziona ma frustrante significa anche che devi installare TypeScript sul tuo server di build (se ne hai uno). È frustrante che l'opzione "Compile On Save" sia in realtà "Compile on Save or Build" nella realtà. Per ora ho deciso di tornare a Web Essentials 2.9 così ho la possibilità di "Compilare su Salva" da solo indietro. –

1

utilizzando le "essenziali Web" Tool (gratuito, raccomandato) consentono il riquadro di anteprima nelle opzioni Essentials web

Strumenti -> Opzioni -> essenziali Web -> tipografico: Mostra il riquadro di anteprima [ X]

Ora ogni volta che si salva un file TS aperto, Web Essentials si assicura che il file compili (in modo che possa visualizzarlo) ed è possibile aggiornare il codice javascript mentre il progetto è in esecuzione.

Problemi correlati