2016-08-12 2 views
0

Я пытаюсь получить базовую сборку на базе webpack, работающую в VS2015 для приложения Angular 2. Я использую Gulp для запуска процесса webpack (у VS2015 есть крючки, которые хорошо работают с gulp - webpack делает все тяжелое поднятие в моем случае)Gulp в Visual Studio 2015 не запускает angular2-template-loader

Вот проблема - когда я использую процесс сборки VS2015 для запуска gulp (через «после сборки»), angular2-template-loader не запускается. Я ожидаю увидеть замену templateUrl на встроенную разметку, но она по-прежнему ссылается на мои файлы шаблонов. Когда я запускаю gulp через командную строку, angular2-template-loader, похоже, работает и выполняет свою работу.

Вот что я пытался:

  • Запуск WebPack прямо из командной строки дает мне желаемый результат - что приводит меня к мысли, мой WebPack конфигурация является правильным

  • Запуска глотка прямо из командная строка дает мне желаемый результат

  • Я исследовал, есть ли какие-либо «скрытые» параметры VS, которые будут использовать разные результаты, а также если VS был привязан к определенной версии от глотки. Насколько я могу судить, нет скрытых параметров или зависимостей версий.

Для справки, вот мой глоток и WebPack конфиги, а также плохой выход и ожидаемый результат: https://gist.github.com/scotmeiste/b9b91dcda13a896e771be0da5d89255c

На выходных файлов, посмотрите на свойства templateUrl/шаблона по направлению к нижней части.

ответ

0

tldr: VS2015 автоматически компилирует файлы TypeScript по умолчанию, и это вызвало нежелательные результаты с помощью строкового машиностроения Gulp. Добавление следующих к первому <PropretyGroup> узла в файле проекта скорректированного вопрос:

<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>

Подробности

По умолчанию Visual Studio будет компилировать машинопись файлы, но только , когда вы делаете полная перестройка. Это объясняет, почему некоторые мои изменения в моем TS-файле не распространялись. Результатом этого было то, что мой каталог app заполнил бы результат сборки Visual Studio TS, но не каждый раз, когда я внес изменения.

Когда gulp запускает сборку 2-го типа, я считаю, что он увидит [bad] из put-build-build и использует эти файлы, даже если они были потенциально устаревшими. Они также не имели преимущества процесса angular2-template-loader, так как VS заботится только о выполнении сборки TypeScript.

Solutions

  1. Первое решение упоминается в tldr - добавить возможность остановить машинопись компиляции.
  2. Используйте другой редактор, который будет играть лучше с gulp и webpack.
  3. (непроверенный) устанавливает выход в конфигурации TS в соответствии с назначением вывода в вашем файле gulp - не уверен, что это решит проблему, так как angular2-template-loader не работает.
Смежные вопросы