2017-01-18 6 views
1

Как работает Visual Studio (2015) с внешними инструментами, такими как компилятор NPM и Typcript (tsc.exe) и т. Д.? Думаю, во время создания решения или проекта что-то должно рассказывать MSBuild о запуске этих дополнительных инструментов. Я хочу понять это при работе с капюшоном.Visual Studio - под капотом (NPM/Typcript)

ответ

1

Это все зависит ...

Visual Studio имеет несколько сервисов и функций, которые Интерлинк здесь:

  • Language Services - Visual Studio может быть расширена с помощью так называемого языковые службы, они обеспечивают анализ intellisense, синтаксис, выделение и т. д. Для Javascript и TypScript Microsoft предоставляет языковой сервис, который предоставляет такую ​​информацию.
  • MsBuild - Под большинством проектов Visual Studio живет проект MsBuild. Если вы выполните поиск в каталоге программных файлов, вы найдете папку MsBuild и под ним будет указано количество целевых файлов. Это включает в себя один для Typcript, который преобразует ваши .ts-файлы во время сборки. Эти целевые файлы напрямую используют задачу exec MsBuild для запуска инструментов или предоставления пользовательской задачи MsBuild в виде сборки .NET, которая реализует определенные интерфейсы. Эти задачи могут либо реализовать требуемое действие самостоятельно, либо выложить на инструмент, чтобы он выполнял действие.
  • Roslyn - Для C# и VB.NET анализ проектов и фоновая компиляция источников обрабатывается новым компилятором Roslyn. Это действительно работает в фоновом режиме во время ввода и имеет очень мощную модель памяти всего вашего кода в вашем проекте. Roslyn также поддерживает надстройки в виде анализаторов и действий рефакторинга, которые либо предоставляют пользователю обратную связь об общих ошибках, либо предоставляют способы автоматической перезаписи/изменения кода.
  • Task Runner - Visual Studio Task Runner - это плагин для Visual Studio, который сначала поставляется как расширение и теперь является частью Visual Studio. Он реагирует на события в среде IDE (сборка, тестирование и т. Д.) И может связывать действия в ваших сценариях package.json или grunt или bower etc. Плагин убедится, что ваши скриптовые команды выполняются в нужный момент времени во время сборки.
  • Test Runners - тестовое окно Visual Studio поддерживает также расширения, поэтому Mocha и Chutzpah extension в вашем проекте будут подняты, и во время выполнения теста эти плагины будут предложены для первого списка и последующего выполнения тестов. Эти бегуны выступают в качестве своего рода прокси-серверов, которые возвращают список тестов и их статус после выполнения.
  • Custom extensions - Есть много других способов, которыми некоторые поставщики расширяют Visual Studio, предоставляя универсальное расширение.Эти расширения могут содержать любой из вышеуказанных элементов или могут просто прослушивать события, созданные Visual Studio, в то время как вы выполняете свою работу и реагируете на них.
+0

Спасибо! Теперь я могу подключить точки. – jujiro

1

Вы можете увидеть ссылки на пункты машинопись, если вы откроете .csproj с помощью текстового редактора (или из визуальной студии: выгрузить проект, щелкните правой кнопкой мыши на проекте и выберите Обработать myproject.csproj)

Вы увидите машинописи ресурсов:

<ItemGroup> 
    <TypeScriptCompile Include="src\config.ts" /> 

мишень для сборки:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets')" /> 

внешних инструментов, настроенные в Инструменты/Опции:

enter image description here

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