Vite.AspNetCore
1.2.0
See the version list below for details.
dotnet add package Vite.AspNetCore --version 1.2.0
NuGet\Install-Package Vite.AspNetCore -Version 1.2.0
<PackageReference Include="Vite.AspNetCore" Version="1.2.0" />
paket add Vite.AspNetCore --version 1.2.0
#r "nuget: Vite.AspNetCore, 1.2.0"
// Install Vite.AspNetCore as a Cake Addin #addin nuget:?package=Vite.AspNetCore&version=1.2.0 // Install Vite.AspNetCore as a Cake Tool #tool nuget:?package=Vite.AspNetCore&version=1.2.0
Vite.AspNetCore
This library offers some integration with ViteJS to be used in ASP.NET applications during. It doesn't require a SPA and can be used with:
- Razor Pages
- MVC
- Blazor Server
Features
This library has two simple but useful features:
- A Middleware to forward the requests to the Vite Dev Server
- A service to access the Vite manifest
The Vite Middleware
The common way to access Vite Dev Server assets in your application is by using the following template, specifying the local URL where Vite Server is running.
<environment include="Development">
<script type="module" src="http://localhost:5173/@vite/client"></script>
<script type="module" src="http://localhost:5173/main.js"></script>
</environment>
<environment include="Development">
<img src="http://localhost:5173/assets/logo.svg" alt="Vite Logo" />
</environment>
<environment exclude="Development">
<img src="~/assets/logo.svg" alt="Vite Logo" />
</environment>
This can be a problem in some circumstances. Service workers, for example, cannot be properly tested in this way. Also, the developer would have to prepare two ways to access the public assets in the different environments.
By using the middleware during development, you don't need to pass the full local URL. You can use aspnet paths as usual.
<environment include="Development">
<script type="module" src="~/@vite/client"></script>
<script type="module" src="~/main.js"></script>
</environment>
<img src="~/assets/logo.svg" alt="Vite Logo" />
The middleware will proxy all requests to the Vite Dev server. You won't need alternative paths for images or other resources from your public assets.
Enable the middleware by adding these lines to your Program.cs
or Startup
class.
using Vite.AspNetCore.Extensions;
// ---- Service Configuration ----
if (builder.Environment.IsDevelopment())
{
// Add the Vite Middleware service.
builder.Services.AddViteDevMiddleware();
}
// ...
// ---- App Configuration ----
if (app.Environment.IsDevelopment())
{
// Use Vite Dev Server as middleware.
app.UseViteDevMiddleware();
}
Note: Don't forget to start the Vite Dev Server before running your application.
The Vite Manifest
The Vite Manifest is a JSON file that contains the mapping between the original file names and the hashed names. This is useful to access the files in production environments.
By using the Vite Manifest service, you can access the manifest in your application by injecting the IViteManifest
interface. See the following example.
@inject IViteManifest Manifest
<environment include="Development">
<script type="module" src="~/@@vite/client"></script>
<script type="module" src="~/main.ts"></script>
</environment>
<environment include="Production">
<script type="module" src="~/@Manifest["main.ts"]!.File" asp-append-version="true"></script>
</environment>
Enable the service by adding these lines to your Program.cs
or Startup
class.
using Vite.AspNetCore.Extensions;
// ---- Service Configuration ----
// Add the Vite Manifest Service.
builder.Services.AddViteManifest();
Note: Don't forget to build your assets. Otherwise, the manifest file won't be available.
Configuration
The middleware and the manifest service can be configured by using environment variables, user secrets or appsettings.json
.
I suggest using appsettings.json
and/or appsettings.Development.json
files. This way, you can share the configuration with other developers. This information is not sensitive, so it's safe to share it.
By default, the manifest name is manifest.json
and it's expected to be in the web root folder. If your manifest file has a different name, you can change it by setting the Vite:Manifest
property.
// appsettings.json
{
"Vite": {
"Manifest": "my-manifest.json"
}
}
By default, the middleware will forward all request to the port 5173
without https. If you need to change the port or the protocol, you can do it by setting the Vite:Server:Port
and Vite:Server:UseHttps
properties.
// appsettings.Development.json
{
"Vite": {
"Server": {
"Port": 5174,
"UseHttps": true
}
}
}
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 was computed. 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
- Vite.AspNetCore.Abstractions (>= 1.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Vite.AspNetCore:
Package | Downloads |
---|---|
AbanoubNassem.Trinity
Trinity is a powerful Single-Page Application (SPA) administration tool that is designed to streamline common administrative tasks and enhance the productivity of developers. With its feature-rich and beautifully-designed interface, built using C# and ASP.NET, Trinity makes it easy to manage your website's backend with ease. |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on Vite.AspNetCore:
Repository | Stars |
---|---|
spark-dotnet/framework
Build production ready, full-stack web applications fast without sweating the small stuff.
|
Version | Downloads | Last updated |
---|---|---|
2.3.0 | 3,153 | 11/11/2024 |
2.1.2 | 21,239 | 8/25/2024 |
2.1.1 | 22,950 | 6/26/2024 |
2.0.1 | 1,253 | 6/8/2024 |
2.0.0 | 27,296 | 4/14/2024 |
1.12.0 | 45,582 | 1/15/2024 |
1.11.0 | 21,495 | 11/25/2023 |
1.10.2 | 7,580 | 10/29/2023 |
1.10.1 | 17,557 | 10/9/2023 |
1.10.0 | 12,356 | 9/16/2023 |
1.9.3 | 9,713 | 8/13/2023 |
1.9.0 | 450 | 7/29/2023 |
1.8.1 | 244 | 7/29/2023 |
1.8.0 | 1,663 | 7/9/2023 |
1.7.1 | 3,994 | 6/25/2023 |
1.7.0 | 1,859 | 6/11/2023 |
1.6.2 | 1,578 | 5/25/2023 |
1.6.1 | 161 | 5/22/2023 |
1.6.0 | 160 | 5/20/2023 |
1.5.3 | 1,025 | 5/2/2023 |
1.5.2 | 200 | 4/28/2023 |
1.5.1 | 280 | 4/22/2023 |
1.5.0 | 542 | 4/16/2023 |
1.4.1 | 219 | 4/12/2023 |
1.4.0 | 4,520 | 3/19/2023 |
1.3.0 | 270 | 2/18/2023 |
1.2.0 | 298 | 1/29/2023 |
1.1.0 | 310 | 1/24/2023 |
1.0.0 | 670 | 1/16/2023 |
- Added support for custom manifest services.