Как мне добавить typescript в существующий Asp.Net Проект MVC?[дубликат]

StackOverflow https://stackoverflow.com//questions/12680486

  •  12-12-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

Предупреждение: Этот ответ теперь довольно устарел, поскольку и Typescript, и MVC значительно изменились с момента этого ответа.Я попробую обновить позже.- Ричкодер

Благодаря Сохни за ответом.

Вы можете добавить файлы TypeScript в существующий проект, используя диалоговое окно Добавить > Новый элемент.exampleImage Пожалуйста, обратите внимание, что элемент 'Typescript File' находится не в веб-группе, а в ее родительской, в данном случае Visual C #.

Это должно добавить файл TypeScript, а 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>

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

Другие советы

Это правильно.все, что вам нужно, это цель ms build для сборки файлов .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>

Я собрал пакет nuget, который добавляет целевой файл msbuild в ваш проект.Он запустит компилятор tsc и очистит его выходные данные, чтобы вы могли дважды щелкнуть по ошибкам в Visual Studio и перейти к файлу / строке / столбцу.

https://www.nuget.org/packages/Sholo .Машинописный текст.Сборка

Вам нужно установить действие сборки в окне свойств на 'TypeScriptCompile' для всего, что вы хотите, чтобы tsc скомпилировала.После нескольких дней работы с TypeScript я обнаружил, что для файлов .ts, на которые ссылаются, должно быть установлено значение TypeScriptCompile, но не для файлов, на которые только ссылаются, а для ymmv.Кроме того, вам может потребоваться показать все файлы и добавить исходный файл .js.Если вы хотите сгруппировать связанные файлы .ts /.js /.d.ts вместе, взгляните на расширение VSCommands.Рабочий процесс также довольно хорош с NetDemon / подобными расширениями.

Если вы используете Объединение в пакеты и минимизация, Я только что выпустил реализацию IBundleTransform , которая компилирует TypeScript в Javascript.Он находится на ГитХаб и NuGet (Установочный пакет TypeScriptBundleTransform).Если вы еще не используете пакетирование и минимизацию, на это стоит взглянуть!

Обновить:

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


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

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

Поле предварительной сборки вставьте это (рекурсивно создает все файлы .ts в проекте):

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

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

tsc $(ProjectDir)MyScripts/myfile.ts

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

Если вы используете Microsoft ASP.NET Платформа веб-оптимизации (он же объединение и минимизация), затем попробуйте использовать Комплектный Трансформатор с установленным модулем BundleTransformer.Машинописный текст.В дополнение к компиляции TypeScript-кода в JS, вы также можете произвести минимизацию сгенерированного JS-кода с помощью других модулей Bundle Transformer: Пакет-преобразователь.Microsoft Ajax, Комплект-трансформер.Yui, Преобразователь пакета.Закрытие, Преобразователь пакета.JSMin, Преобразователь пакета.UglifyJS и Преобразователь пакетов.Упаковщик.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top