title | description | ms.date |
---|---|---|
Azure Static Web Apps emulator |
Learn how to use the .NET Aspire Azure Static Web Apps emulator integration to run Azure Static Web Apps locally using the emulator. |
10/11/2024 |
[!INCLUDE includes-hosting]
[!INCLUDE banner]
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.
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
<PackageReference Include="CommunityToolkit.Aspire.Hosting.Azure.StaticWebApps"
Version="*" />
For more information, see dotnet add package or Manage package dependencies in .NET applications.
In the :::no-loc text="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.