.NET .NET Aspire Bun 托管

包括:托管集成 而不 Client 集成

注意

此集成是 .NET.NET Aspire 社区工具包 的一部分, 不受 .NET.NET Aspire 团队正式支持。

Bun 是一种现代、快速、轻型的框架,用于使用 TypeScript 生成 Web 应用程序。 使用 .NET Aspire Bun 托管集成,可以在 .NET Aspire 应用主机项目中托管 Bun 应用程序,并将其提供给应用程序中的其他资源。

托管集成

Bun 托管集成将 Bun 应用程序建模为 Aspire.Hosting.ApplicationModel.BunAppResource 类型。 若要访问此类型和 API,以便将其添加到应用主机项目,请在应用主机项目中安装 📦 CommunityToolkitAspire.Hosting.Bun NuGet 包。

此集成要求已在主机上安装 Bun 可执行文件,并且它在系统路径中可用。

dotnet add package CommunityToolkit.Aspire.Hosting.Bun

有关详细信息,请参阅 dotnet add package在 .NET 应用程序中管理包依赖关系。

添加 Bun 资源

在应用主机项目中,对 builder 实例调用 Aspire.Hosting.BunAppExtensions.AddBunApp 以添加 Bun 应用程序资源,如以下示例所示:

var builder = DistributedApplication.CreateBuilder(args);

var api = builder.AddBunApp("api")
                 .WithHttpEndpoint(env: "PORT");

var exampleProject = builder.AddProject<Projects.ExampleProject>()
                            .WithReference(api);

// After adding all resources, run the app...

默认情况下,应用程序的工作目录将是与资源名称匹配的应用主机的同级文件夹,入口点将是 :::no-loc text="index.ts":::。 可以通过将其他参数传递给 AddBunApp 方法来自定义这两者。

var api = builder.AddBunApp("api", "../api-service", "start")
    .WithHttpEndpoint(env: "PORT");

可将 Bun 应用程序添加为对应用主机项目中其他资源的引用。

确保安装包已安装

若要确保 Bun 应用程序已安装在 lockfile 中定义的所有依赖项,可以使用 Aspire.Hosting.BunAppExtensions.WithBunPackageInstaller 方法来确保在应用程序启动之前运行包安装。

var api = builder.AddBunApp("api")
                 .WithHttpEndpoint(env: "PORT")
                 .WithBunPackageInstaller();

另请参阅