Bun integration
Цей контент ще не доступний вашою мовою.
The Aspire Bun hosting integration enables you to run Bun applications alongside your other Aspire resources in the app host. Bun apps participate in the same service discovery, health checks, OpenTelemetry export, and Aspire dashboard support as the rest of your solution.
Hosting integration
Section titled “Hosting integration”To access the Bun hosting APIs in your AppHost project, install the 📦 Aspire.Hosting.JavaScript NuGet package:
aspire add javascriptAspire CLI інтерактивний; оберіть відповідний результат пошуку:
Select an integration to add:
> javascript (Aspire.Hosting.JavaScript)> Other results listed as selectable options...#:package Aspire.Hosting.JavaScript@*<PackageReference Include="Aspire.Hosting.JavaScript" Version="*" />Add Bun app
Section titled “Add Bun app”Add a Bun application to your app host using the AddBunApp extension method:
var builder = DistributedApplication.CreateBuilder(args);
var bunApp = builder.AddBunApp("bun-api", "../bun-app", "server.ts") .WithHttpEndpoint(port: 3000, env: "PORT");
builder.AddProject<Projects.ExampleProject>("apiservice") .WithReference(bunApp);
builder.Build().Run();AddBunApp requires:
- name: The name of the resource in the Aspire dashboard.
- appDirectory: The path to the directory containing your Bun application, relative to the AppHost project.
- scriptPath: The script to run relative to
appDirectory, such asserver.ts.
Specify a custom entrypoint
Section titled “Specify a custom entrypoint”Pass a different scriptPath to run a different script:
var builder = DistributedApplication.CreateBuilder(args);
var bunApp = builder.AddBunApp("bun-api", "../bun-app", "src/http/server.ts") .WithHttpEndpoint(port: 3000, env: "PORT");
builder.Build().Run();Install packages before startup
Section titled “Install packages before startup”When your Bun app includes a package.json file, Aspire uses Bun as the package manager and installs packages automatically before the application starts.
Configure HTTP endpoints
Section titled “Configure HTTP endpoints”Bun applications typically read the port from an environment variable. Use WithHttpEndpoint to declare the HTTP endpoint and bind it to a named environment variable:
var builder = DistributedApplication.CreateBuilder(args);
var bunApp = builder.AddBunApp("bun-api", "../bun-app", "server.ts") .WithHttpEndpoint(port: 3000, env: "PORT");
builder.Build().Run();Your Bun application reads the PORT variable at startup:
const server = Bun.serve({ port: process.env.PORT || 3000, fetch(request) { return new Response("Hello from Bun!"); },});
console.log(`Server listening on port ${server.port}`);