TypeScript не компилируется с WE3 и TS 0.9.1.1

Я просто обновился до последней версии WebEssentials v3, и файлы TS в моем проекте ASP MVC 4 больше не компилируются в JS. Я проверил, что отмечен Параметры → Текстовый редактор → TypeScript → Проект → Автоматически компилировать файлы TypeScript, которые являются частью проекта, но ничего не происходит, когда Я сохраняю или компилирую свой проект. Я попытался удалить существующие .js и .min.js файлы, созданные WE2, но это не помогло. Я попытался добавить новый TS файл в свой проект и не создал JS файл. Я переустановил TS 0.9.1.1, и это не помогло.

Так что делать? Мне что-то не хватает? Что-то не работает или у меня просто неправильные ожидания?

Нужно ли возвращаться к WE2?

Обновление: я даже создал совершенно новый проект ASP MVC 4 С#, чтобы убедиться, что это был не только мой оригинальный проект, но я получил те же результаты.

Интересно, что я только что создал новый проект TypeScript, и мои файлы TS скомпилированы правильно при сохранении... Так что интересно..

Ответ 1

В журнале изменений WE3 есть ссылки, здесь описывается, как включить функцию компиляции при сохранении, см. http://typescript.codeplex.com/wikipage?title=Compile-on-Save.

Я создал пакет nuget под названием Ltc.MSBuild.TS0911WE3.targets, который сделает трюк для вас, просто откройте Package Manager Console, введите Install-Package Ltc.MSBuild.TS0911WE3.targets!

Перейдите в Ltc.MSBuild.TS0911WE3.targets на nuget.org.

Ответ 2

Я не уверен, что это правильный метод решения этой проблемы, но вот что я сделал, чтобы "скомпилировать с сохранением", работая над моим проектом...

Отметив, что Compile On Save работает при запуске нового приложения HTML с проектом TypeScript, я сделал сравнение между этим и моим неработающим проектом ASP MVC. Оказывается, в моем проекте ASP MVC отсутствует этот бит кода.

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

Скопируйте/вставьте это в мой проект ASP MVC, чтобы снова помочь мне скомпилировать поддержку. Конечно, это еще не совсем то, что я ожидал. Полученные файлы JS не будут добавляться в проект автоматически, так что я должен был сделать что-то вручную. Мне также пришлось вручную сгруппировать JS файл с TS файлом, чтобы воспроизвести тот же опыт, который я получал с WE2.

Надеюсь, что это поможет кому-то. Хотелось бы услышать некоторые отзывы о решении.

Ответ 3

Убедитесь, что ваш .proj файл содержит раздел XML TypeScriptCompile. Вы можете скопировать проект typescript, если его нет.

Вот спецификация: https://msbuildtypescript.codeplex.com/

Ответ 4

с помощью инструмента "Основные веб-сайты" (бесплатно, рекомендуется) включите панель предварительного просмотра в настройках веб-сайта

Инструменты → Параметры → Основы веб-поиска → Typescript: Показать панель просмотра [X]

Теперь каждый раз, когда вы сохраняете открытый файл TS, веб-узлы гарантируют, что файл компилируется (чтобы он мог его отображать), и вы можете обновить свой код javascript во время работы проекта.