2016-02-01 2 views
2

До версии TS версии 0.9 Visual Studio потребовала, чтобы все файлы TypeScript ссылались на их зависимости через /// < ссылка .../>. Если ссылка была неправильной или пропущена, тогда была сброшена ошибка. С версии v.9.9 это поведение было изменено: теперь Visual Studio автоматически обнаруживает все доступные файлы TS и не бросает никаких ошибок (очевидно, потому, что знает все зависимости).Отключить автоматическое обнаружение файлов TypeScript в Visual Studio

Проблема, с которой мы столкнулись, - это порядок файлов. Без правильного значения /// < ссылка .../> Visual Studio производит неверный конкатенированный файл результатов, который затем приводит к ошибкам JS.

Например, у нас есть типы Foo и Boo. Boo использует Foo. Вы ожидаете, что Foo объявляется перед Boo, но на самом деле объявление Foo происходит после Boo.

Конечно, мы могли бы использовать /// < ссылку .../> даже если VS на самом деле не нужно, и строить процесс будет работать нормально. Но так как VS не вызывает никакой ошибки при использовании ссылки miss для требуемого файла, вы никогда не знаете, правильно ли связан файл результата, а объявления типа правильно упорядочены.

Итак, я хотел бы знать, есть ли способ отключить этот режим автоматического обнаружения и получить список неразрешенных ссылок. Или, может быть, есть еще одна работа, которую я мог бы использовать?

Кстати, мы также пробовали плагин TS gulp, и он создает правильно конкатенированный JS-код. К сожалению, это медленнее, чем встроенный VS TypeScript (5-6 сек против 1-2 сек). Вот почему мы вернулись к VS.

ответ

1

Благодаря одному из разработчиков TS решение было найдено (для справки check GitHub page). Должен сказать, что было совершенно неясно, как решить эту проблему и без разработчика TS я бы даже не подумал, что tsconfig.json может каким-то образом изменить поведение плагина Visual Studio (об этом нет ни об этом ни на веб-сайте TS, ни в блогах). Таким образом, еще раз спасибо Mohamed Hegazy, который предоставил мне информацию :)

Если у вас есть такая же проблема, как и я, вы должны сделать следующее:

  1. Установка TS 1.8+ для Visual Studio
  2. добавить tsconfig.json в корневую папку с файлами машинописных файлов
  3. добавить ссылки на «файлы ввода» в раздел «файлы» в tsconfig.json (в моем случае у нас было 2 файла, которые нужно добавить сюда, начиная с этих двух файлов, я могу открыть каждый файл TS в решении)
  4. не забудьте добавить refe rences to ".d.ts"
+0

Благодарим за отправку вашей техники, что у меня была такая же потребность и она была успешно использована. Тем не менее, я использую параметр 'declarations: true' compiler из-за моих модульных тестов, и всякий раз, когда создается файл деклараций, я получаю миллиард ошибок« Duplicate identifier », и мой код становится полным или красным подчеркивается. Кажется, что VS все еще автоматически обнаруживает файлы 'd.ts' в моем веб-проекте (классический проект ASP.NET MVC5). У вас есть идеи, как справиться с этим? –

+0

На самом деле, у меня есть аналогичная проблема, но в моем случае это было из-за ReSharper. К сожалению, я не помню, что именно фиксировало проблему, скорее всего, «Очистить кеши» в ReSharper + перезапустить VS –

Смежные вопросы