.NET .NET Aspire Bun 托管

包括:托管集成已包括仅限于—Client集成不包括Client集成不包括

注意

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

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

托管集成

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

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

dotnet add package CommunityToolkit.Aspire.Hosting.Bun

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

添加 Bun 资源

在应用主机项目中,调用Aspire.Hosting.BunAppExtensions.AddBunAppbuilder实例以添加 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();

另请参阅