Преобразование события сборки TypeScript в команду External Tools

Я работаю над файлами TypeScript с помощью Visual Studio 2012 Express для Web. Поскольку надстройка Web Essentials не работает с выпусками Express, и повторная сборка всего проекта при каждом обновлении сценария занимает слишком много времени, я надеялся преобразовать следующее событие сборки (из шаблона проекта TypeScript) в ' Команда внешних инструментов, которую я могу разместить на своей панели инструментов.

<Target Name="BeforeBuild">
  <Message Text="Compiling TypeScript files" />
  <Message Text="Executing tsc$(TypeScriptSourceMap) @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
  <Exec Command="tsc$(TypeScriptSourceMap) @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
</Target>

К сожалению... это как бы потеряло меня. Я не могу найти документацию по $(TypeScriptSourceMap)ни @() а также %() макросы. Кажется, мне не нравится копировать команду напрямую. (Даже после преобразования сущностей HTML.)

Что я могу ввести в диалог внешних инструментов, чтобы имитировать это событие сборки?

Я попытаюсь написать сценарий PS или что-то подобное, например, обходной путь, но для этого не хватит функциональности только для работы с файлами с действием сборки TypeScriptCompile.

1 ответ

Решение

$(TypeScriptSourceMap) приходит примерно на 4 строки раньше в файле проекта. Это просто " --sourcemap" когда в конфигурации отладки и "" иначе.

@() Синтаксис здесь в основном означает "Для каждого элемента проекта, чье действие сборки TypeScriptCompile, поместите его полный путь в двойные кавычки и соедините получающиеся элементы пробелом.

Лучшая практика для проектов TypeScript - иметь файл "project.ts", который выглядит следующим образом:

project.ts

/// <reference path="file1.ts" />
/// <reference path="file2.ts" />
/// ... and so on

file1.ts

/// <reference path="project.ts" />

class alpha { ... }

file2.ts

/// <reference path="project.ts" />

class beta { ... }

С этой настройкой вы можете просто запустить tsc project.ts или же tsc project.ts --out app.ts и правильная вещь случится.

Другие вопросы по тегам