Soukoku.AspNetCore.ViteIntegration
1.0.0-alpha17
dotnet add package Soukoku.AspNetCore.ViteIntegration --version 1.0.0-alpha17
NuGet\Install-Package Soukoku.AspNetCore.ViteIntegration -Version 1.0.0-alpha17
<PackageReference Include="Soukoku.AspNetCore.ViteIntegration" Version="1.0.0-alpha17" />
paket add Soukoku.AspNetCore.ViteIntegration --version 1.0.0-alpha17
#r "nuget: Soukoku.AspNetCore.ViteIntegration, 1.0.0-alpha17"
// Install Soukoku.AspNetCore.ViteIntegration as a Cake Addin #addin nuget:?package=Soukoku.AspNetCore.ViteIntegration&version=1.0.0-alpha17&prerelease // Install Soukoku.AspNetCore.ViteIntegration as a Cake Tool #tool nuget:?package=Soukoku.AspNetCore.ViteIntegration&version=1.0.0-alpha17&prerelease
This is a lib for integrating a Vite app in an aspnet or aspnet core app. Aspnet app provides the backend while a Vite SPA app provides the frontend.
For aspnet core
Add the NuGet package Soukoku.AspNetCore.ViteIntegration
, then
in the typical Program.cs file, register it with
var builder = WebApplication.CreateBuilder(args);
// depends on the actual dev server url
builder.Services.AddViteManifest("https://localhost:3000");
In a controller method that should serve the SPA view, use "VuePage"
and give it a VitePageMvcModel
.
[HttpGet("{*anyPath}")]
public ActionResult Index(string? anyPath = null)
{
var model = new VitePageMvcModel
{
Entry = "src/main.ts",
UseAntiforgery = true, // if necessary
PageData = new // as needed
{
Property = "howdy"
}
};
return View("VuePage", model);
}
Run the typical npm run dev
in your vite app folder, then debug in aspnet as usual.
For aspnet mvc (fx 4.6.2+)
Add the NuGet package Soukoku.AspNet.Mvc.ViteIntegration
, then
in the typical RouteConfig.cs file, register it with.
// assuming "dist" output content is placed in site root
var manifestPath = HostingEnvironment.MapPath("~/.vite/manifest.json");
// depends on the actual dev server url
routes.MapViteSpaProxy(manifestPath, "https://localhost:3000");
In a controller method that should serve the SPA view, use "VuePage"
and give it a VitePageMvcModel
.
public ActionResult Index()
{
var model = new VitePageMvcModel
{
Entry = "src/main.ts",
UseAntiforgery = true, // if necessary
PageData = new // as needed
{
Property = "howdy"
}
};
return View("VuePage", model);
}
For dev time, ensure these are in the web.config file
<location path="@id">
<system.web>
<httpRuntime requestPathInvalidCharacters="<,>,*,%,&,\,?" />
</system.web>
</location>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>
Run the typical npm run dev
in your vite app folder, then debug in aspnet as usual.
Examples
A more complete example is in the repo.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net6.0
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.0-alpha17 | 59 | 9/15/2024 |
1.0.0-alpha16 | 57 | 9/10/2024 |
1.0.0-alpha15 | 52 | 9/8/2024 |
1.0.0-alpha14 | 79 | 8/8/2024 |
1.0.0-alpha13 | 76 | 4/13/2024 |
1.0.0-alpha12 | 80 | 1/7/2024 |
1.0.0-alpha11 | 73 | 11/15/2023 |
1.0.0-alpha10 | 60 | 11/3/2023 |