Come faccio ad aggiungere dattiloscritto ad un progetto di Asp.Net MVC esistente?

voti
41

Mi piace l'idea dietro dattiloscritto, ma non riesco a capire come includere in un progetto ASP.Net MVC. Ho già installato l'estensione di Visual Studio, ma io non riesco a trovare un esempio o la documentazione su come aggiungere *.tsi file che possono essere compilati in *.jsfile.

Edit: In realtà, dovrei replicare il modo in cui l'esempio Win8 .jsprojcomprende e gestisce i .tsfile? O sarà che funziona solo per i progetti di HTML / JS Win8?

È pubblicato 01/10/2012 alle 21:22
fonte dall'utente
In altre lingue...                            


6 risposte

voti
24

Attenzione: Questa risposta è ormai abbastanza datato, sia come tipografico e MVC è cambiato in modo significativo dal questa risposta. Cercherò un aggiornamento più tardi. - Richcoder

Grazie a Sohnee per la risposta.

È possibile aggiungere file dattiloscritto di un progetto esistente utilizzando la> finestra di dialogo New Item Aggiungi. exampleImage Si prega di notare che la voce 'tipografico File' non risiede nel gruppo Web, ma sotto è genitore in questo caso Visual C #.

Questo dovrebbe aggiungere un file dattiloscritto e Visual Studio farà il resto.

Allora avete bisogno di aggiungere queste righe al file di progetto:

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

Ha funzionato perfettamente per me, ma per favore commentare se si esegue in eventuali problemi.

Risposto il 03/10/2012 a 00:38
fonte dall'utente

voti
19

È corretto. tutto ciò che serve è il ms costruire bersaglio per creare i file .ts in .js file. L'esempio mostra un target Win8 BeforeBuild di chiamare TSC su tutti i file che appartengono a ItemGroup TypeScriptCompile, che è definita come $ (ProjectDir) ***. Ts (o tutti i file .ts nel progetto).

Replica di questo modello dovrebbe funzionare in qualsiasi progetto MSBuild, e non solo i progetti Win8.

Ecco un esempio di quello che sto parlando: Aggiungi questo a qualsiasi progetto di msbuild, e si dovrebbe essere compilando il file nel fascicolo equivialnt .js eventuali Ts quando la costruzione inizia ..

<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>
Risposto il 01/10/2012 a 23:14
fonte dall'utente

voti
7

Ho gettato insieme un pacchetto NuGet che aggiunge un file MSBuild obiettivi al progetto. Verrà eseguito il compilatore TSC e ripulire la sua uscita in modo che è possibile fare doppio clic sugli errori in Visual Studio e passare alla / riga / colonna del file.

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

È necessario impostare l'azione Costruire nella finestra Proprietà a 'TypeScriptCompile' per tutto ciò che si desidera TSC per la compilazione. Da un paio di giorni di armeggiare con dattiloscritto, ho scoperto che i file .ts che stanno facendo il riferimento deve essere impostato su TypeScriptCompile, ma i file che vengono fatto riferimento solo non dovrebbe, ma YMMV. Inoltre, potrebbe essere necessario visualizzare tutti i file e aggiungere il file .js originale. Se si desidera relativo gruppo ts / js / .d.ts file insieme, dare un'occhiata al l'estensione VsCommands. Flusso di lavoro è anche piuttosto bella con NetDemon / estensioni simili.

Risposto il 04/10/2012 a 01:55
fonte dall'utente

voti
4

Se si utilizza la legatura e Minification , ho appena pubblicato un'implementazione di IBundleTransform che compila dattiloscritto a Javascript. E 'su GitHub e NuGet (Install-Package TypeScriptBundleTransform). Se non sei ancora utilizza legatura e Minification, vale la pena dare un'occhiata!

Risposto il 07/10/2012 a 23:51
fonte dall'utente

voti
3

aggiornare:

Basta installare Essentials 2012 Web plug-in, si avrà la compilazione automatica salvare - sia per i js e .min.js e una vista combinata pulito per vedere l'output JavaScript accanto al tuo codice dattiloscritto.


Questo è un metodo grezzo che ho usato:

Tasto destro del mouse il vostro Progetto> Proprietà> Eventi di generazione

scatola prebuild incolla questo (crea ricorsivamente tutti i file .ts in progetto):

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

Per la costruzione del file voce specifica:

tsc $(ProjectDir)MyScripts/myfile.ts

Sono sicuro che ci sia un modo migliore di farlo.

Risposto il 02/10/2012 a 02:10
fonte dall'utente

voti
0

Se si utilizza l'ASP.NET Web Optimization Framework Microsoft (aka legatura e Minification), quindi provare a utilizzare il Bundle Transformer con modulo installato BundleTransformer.TypeScript . In aggiunta alla compilazione del dattiloscritto-codice JS, è possibile anche produrre minimizzazione del JS-codice generato utilizzando altri moduli del Bundle Transformer: BundleTransformer.MicrosoftAjax , BundleTransformer.Yui , BundleTransformer.Closure , BundleTransformer.JsMin , BundleTransformer. UglifyJs e BundleTransformer.Packer .

Risposto il 19/10/2012 a 17:43
fonte dall'utente

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