Как добавить машинопись в существующий проект Asp.Net MVC?

голоса
41

Я люблю эту идею за машинописи, но не могу понять, как включить его в проект ASP.Net MVC. Я уже установил Визуальное расширение Studio, но я не могу найти пример или документацию о том , как добавлять *.tsфайлы, компилировать в *.jsфайлы.

Edit: На самом деле, я должен повторить путь , что пример Win8 .jsprojвключает в себя и обрабатывает .tsфайлы? Или , что работает только для проектов HTML / JS Win8?

Задан 01/10/2012 в 21:22
источник пользователем
На других языках...                            


6 ответов

голоса
24

Внимание: Этот ответ в настоящее время довольно устаревший, так как оба Машинопись и MVC значительно изменились с тех пор этим ответа. Постараюсь обновление позже. - Richcoder

Благодаря Sohnee для ответа.

Вы можете добавить Машинопись файлы в существующий проект с помощью Add> New Item диалог. exampleImage Обратите внимание , что «Машинопись Файл» пункт не находится под веб - группе , но под его родителей в этом случае Visual C #.

Это должно добавить файл машинопись и Visual Studio сделает все остальное.

Затем нужно добавить эти строки в файл проекта:

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

Он прекрасно работал для меня, но, пожалуйста, комментарий, если вы столкнулись с проблемами.

Ответил 03/10/2012 в 00:38
источник пользователем

голоса
19

Это верно. все, что вам нужно, это мс построить цель построить .ts файлы в .js файлы. Пример Win8 показывает цель beforeBuild для вызова TSC всех файлов, принадлежащих к ItemGroup TypeScriptCompile, который определяется как $ (ProjectDir) ***. Ts (или все файлы .ts в вашем проекте).

Репликация этот шаблон должен работать в любом MSBuild проекта, а не только проекты Win8.

Вот пример того, что я говорю: Добавить это любой MsBuild проект, и вы должны компилировать любые ts-файл в equivialnt .js файл при запуске вашей сборки ..

<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>
Ответил 01/10/2012 в 23:14
источник пользователем

голоса
7

Я бросил вместе пакет NuGet, который добавляет файл MSBuild мишеней для вашего проекта. Он будет работать ТСК компилятор и очистить свой выход, так что вы можете дважды щелкнуть на ошибки в Visual Studio и перейти к файлу / строки / столбца.

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

Вы должны установить Build Action в окне свойств в «TypeScriptCompile» для чего-нибудь, что вы хотите TSC для компиляции. От несколько дней переделывая машинопись, я обнаружил, что ts-файлы, которые делают ссылки должны быть установлены в TypeScriptCompile, но файлы, которые ссылаются только не должен, но YMMV. Кроме того, вам может понадобиться, чтобы показать все файлы и добавить исходный файл .js. Если вы хотите, чтобы группировать связанные .ts / .js / .d.ts файлы вместе, обратите внимание на расширение VsCommands. Workflow также довольно хорошо с NetDemon / подобными расширениями.

Ответил 04/10/2012 в 01:55
источник пользователем

голоса
4

Если вы используете пакетирование и Минимизацию , я только что выпустил реализацию IBundleTransform , который компилирует транскрипт Javascript. Он находится на GitHub и NuGet (Install-Package TypeScriptBundleTransform). Если вы еще не используете пакетирование и Минимизацию, это стоит посмотреть!

Ответил 07/10/2012 в 23:51
источник пользователем

голоса
3

Обновить:

Просто установите Web Essentials 2012 плагина, вы будете иметь автоматическую компиляцию на сохранить - как для .js и .min.js и аккуратного вида разделенного , чтобы увидеть выход , JavaScript рядом с кодом машинописи.


Это грубый метод я использую:

Щелкните правой кнопкой мыши свой проект> Свойства> Build Events

PreBuild окно вставьте (рекурсивно строит все файлы .ts в проекте):

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

Для построения конкретного файла ввода:

tsc $(ProjectDir)MyScripts/myfile.ts

Я уверен, что есть лучший способ сделать это.

Ответил 02/10/2012 в 02:10
источник пользователем

голоса
0

Если вы используете Framework Microsoft ASP.NET Web Optimization (ака пакетирования и Минимизация), а затем попытаться использовать Bundle Transformer с установленным модулем BundleTransformer.TypeScript . В дополнение к составлению Машинопись-кода на JS, вы можете также произвести минификация сгенерированного JS-кода, используя другие модули Bundle Transformer: BundleTransformer.MicrosoftAjax , BundleTransformer.Yui , BundleTransformer.Closure , BundleTransformer.JsMin , BundleTransformer. UglifyJs и BundleTransformer.Packer .

Ответил 19/10/2012 в 17:43
источник пользователем

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