Есть ли способ подключить задачу npm при запуске основного приложения aspnet в visual-studio? - PullRequest
0 голосов
/ 14 июня 2019

У меня есть основное приложение Asp.Net с интегрированным в него WebpackDevMiddleware. Этот WebpackDevMiddleware обслуживает клиентские ресурсы, созданные с помощью команды NPM. Теперь я хочу создавать и обслуживать эти клиентские оценки (JS / CSS) одновременно при запуске проекта.

Очевидным решением, которое я думал, было добавить (командную строку события перед сборкой) в проект и предоставить команду npm. Недостатком этого является то, что когда я создаю образ докера моего приложения, используя dotnet core sdk, он запрашивает среду узла, которой у него нет.

<Target Name="PreBuild" BeforeTargets="PreBuildEvent">
   <Exec Command="npm run build-webpack" />
</Target>

и это мой шаг сборки докера, который не распознает команду NPM, связанную с сборкой / публикацией dotnet

FROM mcr.microsoft.com/dotnet/core/sdk:2.2 as builder
WORKDIR /app
COPY . .
RUN dotnet publish -c $ENVIRONMENT -o ../out

Теперь я действительно хочу, чтобы моя цель выполнялась только при запуске приложения в VS. Условие может работать, но что это может быть?

1 Ответ

1 голос
/ 14 июня 2019

Теперь я действительно хочу, чтобы моя цель выполнялась только при запуске приложения в VS.Условие может работать, но что это может быть?

Проверьте этот документ : при построении внутри Visual Studio свойство $(BuildingInsideVisualStudio) устанавливается в значение true.Это может быть использовано в вашем проекте или файлах .targets, чтобы сборка работала по-другому.

Таким образом, ваша цель будет выглядеть следующим образом:

<Target Name="PreBuild" Condition="'$(BuildingInsideVisualStudio)'=='true'" BeforeTargets="PreBuildEvent">
   <Exec Command="npm run build-webpack" />
</Target>

Тогда эта цель будет выполняться только при сборке вVS.

...