Изпълнение на Gulp задача(и) само при публикуване на ASP.NET 5 уеб приложение

Какъв би бил най-добрият начин за изпълнение на Gulp задачи само при публикуване на ASP.NET 5 уеб приложение? Трябва ли да добавя персонализирано събитие за изграждане който изпълнява команда Gulp?

cmd.exe /c gulp -b "C:\Projects\ProjectName\Source\ProjectName.Web" --gulpfile "C:\Projects\ProjectName\Source\ProjectName.Web\Gulpfile.js" publish

Или, за предпочитане, има ли начин да обвържете Gulp задача към целта BeforePublish чрез Task Runner Explorer?

Всякакви предложения ще бъдат много оценени.


person Jonathan Freeland    schedule 07.08.2015    source източник


Отговори (2)


АКТУАЛИЗАЦИЯ 2 .NET Core CLI вече не поддържа "prepack". Скриптът след компилиране може да работи по-добре.

https://docs.microsoft.com/en-us/dotnet/articles/core/tools/project-json#scripts

Оригинален отговор

Добавете го към вашия раздел „скриптове“ на project.json

project.json: Документация за скриптове

{
...
  "scripts": {
    "prepack": "gulp publish",
  }
...
}
person natemcmaster    schedule 11.08.2015
comment
Ако исках да се изпълнява преди публикуване, щях ли да се закача за действието prepack? - person Jonathan Freeland; 13.08.2015
comment
Всъщност целта за предварително компилиране може да е по-добра, ако използвате VS инструментариум за публикуване. - person natemcmaster; 13.08.2015
comment
ако искате да стартирате преди публикуване, тогава мисля, че prepublish е действието, което трябва да използвате... - person Pawel; 14.07.2016

Създайте целта във вашия файл с профил за публикуване (файлът *.pubxml все още съществува в проекти на asp.net 5). Файлът pubxml е файл за компилация и се добавя към вашия файл за компилация на proj. По този начин ще се изпълнява само когато публикувате, като използвате този конкретен профил.
Бих използвал целта BeforeBuild, за да бъда по-общ (всички възстановяване на пакети, цялото инжектиране на js/css в изгледи и т.н., бих ги направил преди изграждането ще започне) и добавете там командата gulp:

<Target Name="BeforeBuild">
   <Exec Command="call gulp" WorkingDirectory="$(ProjectDir)" />
</Target>

Това ще работи независимо дали публикувате от Visual Studio или с MSBuild от вашата компилираща машина.

person Liviu Costea    schedule 07.08.2015