Thanks to visit codestin.com
Credit goes to aspire.dev

Перейти до вмісту
Docs Try Aspire
Docs Try

Bun integration

Цей контент ще не доступний вашою мовою.

Bun logo

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.

To access the Bun hosting APIs in your AppHost project, install the 📦 Aspire.Hosting.JavaScript NuGet package:

Aspire CLI — Додати пакет Aspire.Hosting.JavaScript
aspire add javascript

Aspire CLI інтерактивний; оберіть відповідний результат пошуку:

Aspire CLI — Приклад виводу
Select an integration to add:
> javascript (Aspire.Hosting.JavaScript)
> Other results listed as selectable options...

Add a Bun application to your app host using the AddBunApp extension method:

C# — AppHost.cs
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 as server.ts.

Pass a different scriptPath to run a different script:

C# — AppHost.cs
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();

When your Bun app includes a package.json file, Aspire uses Bun as the package manager and installs packages automatically before the application starts.

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:

C# — AppHost.cs
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:

TypeScript — server.ts
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}`);