feat(backend): include pre-built SPA dist files in publish output when SkipSpaBuild is true

Add a new MSBuild target to include existing SPA dist files in the publish output when the SkipSpaBuild flag is set to true, ensuring the pre-built frontend assets are available in the published application without rebuilding.
This commit is contained in:
2026-06-03 21:04:32 +03:30
parent ee98cef379
commit 8079166f22

View File

@@ -39,6 +39,18 @@
<Exec WorkingDirectory="$(SpaRoot)" Command="npm ci" /> <Exec WorkingDirectory="$(SpaRoot)" Command="npm ci" />
</Target> </Target>
<!-- Always include pre-built SPA dist files in publish output (if they exist) -->
<Target Name="IncludeSpaDist" AfterTargets="ComputeFilesToPublish" Condition=" '$(SkipSpaBuild)' == 'true' And Exists('$(SpaRoot)dist\') ">
<ItemGroup>
<DistFiles Include="$(SpaRoot)dist\**" />
<ResolvedFileToPublish Include="@(DistFiles->'%(FullPath)')" Exclude="@(ResolvedFileToPublish)">
<RelativePath>%(DistFiles.Identity)</RelativePath>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
</ResolvedFileToPublish>
</ItemGroup>
</Target>
<Target Name="PublishRunWebpack" AfterTargets="ComputeFilesToPublish" Condition=" '$(SkipSpaBuild)' != 'true' "> <Target Name="PublishRunWebpack" AfterTargets="ComputeFilesToPublish" Condition=" '$(SkipSpaBuild)' != 'true' ">
<!-- Build the frontend --> <!-- Build the frontend -->
<Exec WorkingDirectory="$(SpaRoot)" Command="npm ci" Condition=" !Exists('$(SpaRoot)node_modules') " /> <Exec WorkingDirectory="$(SpaRoot)" Command="npm ci" Condition=" !Exists('$(SpaRoot)node_modules') " />