.NET Aspire Community Toolkit Deno hosting integration
Includes: Hosting integration not Client integration
Note
This integration is part of the .NET Aspire Community Toolkit and isn't officially supported by the .NET Aspire team.
In this article, you learn about the .NET Aspire Community Toolkit Deno package. The extensions package brings the following features:
- Running Deno applications
- Running Node.js applications via Deno tasks
- Ensuring that the packages are installed before running the application via Deno installer
Hosting integration
To get started with the .NET Aspire Community Toolkit Deno extensions, install the 📦 CommunityToolkit.Aspire.Hosting.Deno NuGet package in the AppHost project.
dotnet add package CommunityToolkit.Aspire.Hosting.Deno
For more information, see dotnet add package or Manage package dependencies in .NET applications.
Example usage
The following sections detail various usages, from running Vite applications to using specific package managers.
Run Deno apps
This integration extension adds support for running a Deno application defined in a script. Since Deno is secure by default, permission flags must be specified in permissionFlags
argument of AddDenoApp
.
var builder = DistributedApplication.CreateBuilder(args);
builder.AddDenoApp("oak-demo", "main.ts", permissionFlags: ["--allow-env", "--allow-net"])
.WithHttpEndpoint(env: "PORT")
.WithEndpoint();
builder.Build().Run();
The preceding code uses the fully qualified switches. Alternatively, you can use the equivalent alias as well. For more information, see Deno docs: Security and permissions.
Run Deno tasks
This integration extension adds support for running tasks that are either specified in a package.json or deno.json.
var builder = DistributedApplication.CreateBuilder(args);
builder.AddDenoTask("vite-demo", taskName: "dev")
.WithHttpEndpoint(env: "PORT")
.WithEndpoint();
builder.Build().Run();
Deno package installation
This integration extension adds support for installing dependencies that utilizes deno install
behind the scenes by simply using
WithDenoPackageInstallation
.
Note
This API only works when a deno.lock file present.
var builder = DistributedApplication.CreateBuilder(args);
builder.AddDenoTask("vite-demo", taskName: "dev")
.WithDenoPackageInstallation()
.WithHttpEndpoint(env: "PORT")
.WithEndpoint();
See also
.NET Aspire