有没有办法在 visual-studio 中 运行 aspnet 核心应用程序时连接 npm 任务?
Is there a way to hookup npm task while running aspnet core application in visual-studio?
我有一个 Asp.Net 核心应用程序,其中集成了 WebpackDevMiddleware。该 WebpackDevMiddleware 服务于使用 NPM 命令构建的客户端资产。现在我想在项目运行时同时构建和服务这些客户端资产 (JS/CSS)。
我认为最明显的解决方案是在项目中添加(预构建事件命令行)并提供 npm 命令。这样做的缺点是,当我使用 dotnet core sdk 构建我的应用程序的 docker 图像时,它会请求它没有的节点环境。
<Target Name="PreBuild" BeforeTargets="PreBuildEvent">
<Exec Command="npm run build-webpack" />
</Target>
这是我的 docker 构建步骤,无法识别与 dotnet 关联的 NPM 命令 build/publish
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 as builder
WORKDIR /app
COPY . .
RUN dotnet publish -c $ENVIRONMENT -o ../out
现在我真正想要的是,我的目标只在 运行 应用程序在 VS 中执行。条件可能有效,但它可能是什么?
Now what I actually want is, my target only to be executed while
running application in VS. A condition might work but what could it
be?
检查this document:在Visual Studio内部构建时,属性 $(BuildingInsideVisualStudio)
设置为true。这可以在您的项目或 .targets 文件中使用,以导致构建行为不同。
因此您的目标将如下所示:
<Target Name="PreBuild" Condition="'$(BuildingInsideVisualStudio)'=='true'" BeforeTargets="PreBuildEvent">
<Exec Command="npm run build-webpack" />
</Target>
那么这个目标只会在VS中构建时执行。
我有一个 Asp.Net 核心应用程序,其中集成了 WebpackDevMiddleware。该 WebpackDevMiddleware 服务于使用 NPM 命令构建的客户端资产。现在我想在项目运行时同时构建和服务这些客户端资产 (JS/CSS)。
我认为最明显的解决方案是在项目中添加(预构建事件命令行)并提供 npm 命令。这样做的缺点是,当我使用 dotnet core sdk 构建我的应用程序的 docker 图像时,它会请求它没有的节点环境。
<Target Name="PreBuild" BeforeTargets="PreBuildEvent">
<Exec Command="npm run build-webpack" />
</Target>
这是我的 docker 构建步骤,无法识别与 dotnet 关联的 NPM 命令 build/publish
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 as builder
WORKDIR /app
COPY . .
RUN dotnet publish -c $ENVIRONMENT -o ../out
现在我真正想要的是,我的目标只在 运行 应用程序在 VS 中执行。条件可能有效,但它可能是什么?
Now what I actually want is, my target only to be executed while running application in VS. A condition might work but what could it be?
检查this document:在Visual Studio内部构建时,属性 $(BuildingInsideVisualStudio)
设置为true。这可以在您的项目或 .targets 文件中使用,以导致构建行为不同。
因此您的目标将如下所示:
<Target Name="PreBuild" Condition="'$(BuildingInsideVisualStudio)'=='true'" BeforeTargets="PreBuildEvent">
<Exec Command="npm run build-webpack" />
</Target>
那么这个目标只会在VS中构建时执行。