- Add .gitignoreto static assets project withwwwroot/
- Update vite configuration with outDir "../wwwroot/"
- Remove Build\Microsoft.AspNetCore.ClientAssets.targets
- Create Build\ClientAssets.targetswith the following contents
<Project>
  
  <PropertyGroup>
    <ClientAssetsDirectory>Client\</ClientAssetsDirectory>
  </PropertyGroup>
  <Target Name="NpmInstall" Inputs="$(ClientAssetsDirectory)package.json" Outputs="$(ClientAssetsDirectory)node_modules/.install-stamp">
    <Message Text="NPM Install" Importance="High" />
    <Exec WorkingDirectory="$(ClientAssetsDirectory)" Command="npm ci --no-fund --no-audit --prefer-offline" />
    <Touch Files="$(ClientAssetsDirectory)node_modules/.install-stamp" AlwaysCreate="true" />
  </Target>
  <Target Name="NpmBuild" DependsOnTargets="NpmInstall" BeforeTargets="BeforeBuild">
    <Message Text="NPM Build" Importance="High" />
    <Exec WorkingDirectory="$(ClientAssetsDirectory)" Command="npm run build" />
  </Target>
</Project>- Configure static assets proj file with
- Set <StaticWebAssetBasePath>App_Plugins/{YOUR_PKG_ALIAS}</StaticWebAssetBasePath>
- Remove <EnableDefaultContentItems>false</EnableDefaultContentItems>
- Remove <AddRazorSupportForMvc>true</AddRazorSupportForMvc>
- Remove <Content Include="Views\**" />
- Remove <Import Project="build\Microsoft.AspNetCore.ClientAssets.targets" />
- Remove <Target Name="ClientAssetsBuildOutputPath" AfterTargets="ClientAssetsBuild">...</Target>
- Add <Import Project="Build\ClientAssets.targets" />to proj file
- In visual studio go to Tools -> Options -> Projects and Solutions -> ASP.NET Core
- Set Auto build and refresh optiontoAuto build and refresh browser after saving
- Set CSS hot reloadtoEnabled
- In visual studio go to Tools -> Options -> Debugging -> .NET/C++ Hot Reload
- Check all checkbox options to true