Typescript не будет правильно компилироваться в VS2012

По непонятной причине Typescript внезапно перестал надёжно компилироваться в JS-код.

Использование VS2012, Typescript для VS версии 0.8.3.1 и Web Essentials версии 2.6 (установите значение «Компилировать при сохранении»).

Я могу создать новый файл Typescript и внести в него простые изменения (например, экспортировать простую переменную или функцию). Я могу сохранить файл TS и увидеть перевод JS.

ОДНАКО, как только я добавляю один или несколько файлов определения TS (я использую AMD), а затем редактирую файл TS, ДАЛЬНЕЙШИЕ ИЗМЕНЕНИЯ В СООТВЕТСТВУЮЩЕМ JS-ФАЙЛЕ НЕ ПОЯВЛЯЮТСЯ. Изменения в файле TS больше не будут обновлять JS. Typescript больше не проверяет ошибки.

Только когда я закрою и снова открою VS2012, наконец появится правильный файл JS.

Я удалил/переустановил Typescript, Web Essentials и VS2012 безрезультатно.

Есть ли у кого-нибудь предложения о том, как я могу решить эту проблему? Я в растерянности.

РЕДАКТИРОВАТЬ

Это полностью воспроизводимое состояние. Сегодня я отформатировал свой диск и переустановил VS2012 заново. ИСПОЛЬЗОВАНИЕ 64-разрядной версии Windows 7. Создан новый проект MVC4. Создал новый файл TS. Добавлено несколько файлов определений. Попытка изменить функцию getDist() по умолчанию. Сохранено. Нет обновления файла JS. Удалены файлы определения. Сохранено. Файл JS правильно обновлен, как и ожидалось.

НЕВОЗМОЖНО ПРЕДСТАВИТЬ, ЧТО Я ТОЛЬКО С ЭТОЙ ПРОБЛЕМОЙ!!

Пожалуйста помоги!

ПЕРЕРЕДАКТИРОВАНИЕ Проблема решена. Смотри ниже.


person CCPony    schedule 28.04.2013    source источник
comment
Попробуйте создать новый проект с другим кодом и посмотрите, произойдет ли это и там.   -  person basarat    schedule 28.04.2013
comment
Единственное, о чем я могу думать, это то, что и Web Essentials, и VS2012 могут одновременно пытаться писать в файл JS. Если вы не отключили компиляцию при сохранении в VS2012 > Инструменты > Параметры, я бы сделал это, чтобы за это отвечал Web Essentials.   -  person Fenton    schedule 28.04.2013
comment
Новые проекты приводят к тем же проблемам.   -  person CCPony    schedule 28.04.2013
comment
Я не уверен, что вы имеете в виду, когда предполагаете, что VS2012 и Web Essentials конкурируют за написание файлов JS. Я использую «Инструменты» > «Параметры», чтобы изменить настройки Web Essential, но не вижу никаких других настроек, связанных с Typescript. Несмотря на это, я не думаю, что ваше предложение сработает, поскольку новые файлы TS могут создаваться, но не работают только тогда, когда они становятся несколько более сложными.   -  person CCPony    schedule 28.04.2013
comment
@CCPony, это будет состояние гонки, когда два процесса пытаются получить доступ к одному и тому же файлу. Чем больше файл, чем дольше выполняется процесс, тем больше вероятность возникновения коллизии. Вы можете найти настройки Visual Studio в Инструменты > Параметры > Текстовый редактор > TypeScript > Проект > Компилировать при сохранении (есть две галочки).   -  person Fenton    schedule 29.04.2013
comment
Эти файлы случайно не доступны только для чтения?   -  person thomaux    schedule 29.04.2013
comment
Стив - спасибо за разъяснение. Я проверил, и VS2012 не конкурировал за файлы JS. Anzeo — ни один из файлов (ts или js) не доступен только для чтения.   -  person CCPony    schedule 29.04.2013
comment
РЕШЕНО! НЕ изменяйте расположение по умолчанию файлов DefinatelyTyped, которые загружаются в ваш проект из NuGet!   -  person CCPony    schedule 30.04.2013
comment
Вы уверены, что вам просто не нужно было обновлять ссылочные пути внутри этих d.ts файлов из DefinitelyTyped? Многие из этих файлов ссылаются друг на друга (многие, например, ссылаются на JQuery d.ts), поэтому, если вы измените свою файловую структуру, вам придется обновить несколько путей.   -  person Jude Fisher    schedule 30.04.2013
comment
JcFx - точно! Как вы можете ясно видеть, я только начинаю знакомиться с этой технологией. Однако я бы хотел, чтобы могло быть какое-то сообщение об ошибке или исключение.   -  person CCPony    schedule 30.04.2013
comment
@CCPony - вам может потребоваться обновить свои инструменты. В VS 2012/Update 2 с Web Essentials 2012 2.6 я получаю сообщения об ошибках как на панели вывода WE, так и в списке ошибок VS всякий раз, когда указан неверный путь ссылки: Incorrect reference: file "wrong\path\to\jquery.d.ts" does not exist   -  person Jude Fisher    schedule 01.05.2013
comment
у меня такая же проблема, решения пока не нашел...   -  person daniel    schedule 18.06.2013
comment
@CCPony Вы должны опубликовать свое решение в качестве ответа, чтобы этот вопрос можно было закрыть.   -  person Zze    schedule 10.12.2017


Ответы (2)


это произошло со мной,

я решил эту проблему, установив действие сборки файла ts на TypeScriptCompile

person Nati Krisi    schedule 09.12.2013

См.: Предварительный просмотр панель для TypeScript отсутствует и/или не обновляется в VS2012/13

Также убедитесь, что в файлах TS нет ошибок компиляции — обновление языка может создать ошибку без вашего ведома, а новая версия WE просто не обновляет панель предварительного просмотра, как раньше.

person Dean    schedule 02.05.2014