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 во время работы проекта.