.NET Aspire Azure Static Web Apps emulator integration
Includes: Hosting integration not Client integration
Note
This integration is part of the .NET Aspire Community Toolkit and isn't officially supported by the .NET Aspire team.
In this article, you learn how to use the .NET Aspire Azure Static Web Apps emulator hosting integration to run Azure Static Web Apps locally using the emulator. The emulator provides support for proxying both the static frontend and the API backend using resources defined in the app host.
This integration requires the Azure Static Web Apps CLI to run, and only supports hosting the emulator for local development, not deploying to Azure Static Web Apps.
Hosting integration
To get started with the .NET Aspire Azure Static Web Apps emulator hosting integration, install the 📦 CommunityToolkit.Aspire.Hosting.Azure.StaticWebApps NuGet package in the AppHost project.
dotnet add package CommunityToolkit.Aspire.Hosting.Azure.StaticWebApps
For more information, see dotnet add package or Manage package dependencies in .NET applications.
Example usage
In the Program.cs file of your app host project, define the backend and frontend resources. Then, call the AddSwaEmulator
method to create the emulator and pass the resources using the WithAppResource
and WithApiResource
methods.
var builder = DistributedApplication.CreateBuilder(args);
// Define the API resource
var api = builder.AddProject<Projects.Aspire_CommunityToolkit_StaticWebApps_ApiApp>("api");
// Define the frontend resource
var web = builder
.AddNpmApp("web", Path.Combine("..", "CommunityToolkit.Aspire.StaticWebApps.WebApp"), "dev")
.WithHttpEndpoint(env: "PORT")
.WithExternalHttpEndpoints();
// Create a SWA emulator with the frontend and API resources
_ = builder
.AddSwaEmulator("swa")
.WithAppResource(web)
.WithApiResource(api);
builder.Build().Run();
The preceding code defines the API and frontend resources and creates an emulator with the resources. The emulator is then started using the Run
method.