CommunityToolkit.Aspire.Hosting.NodeJS.Extensions 9.8.0-beta.392

Prefix Reserved
This is a prerelease version of CommunityToolkit.Aspire.Hosting.NodeJS.Extensions.
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package CommunityToolkit.Aspire.Hosting.NodeJS.Extensions --version 9.8.0-beta.392
                    
NuGet\Install-Package CommunityToolkit.Aspire.Hosting.NodeJS.Extensions -Version 9.8.0-beta.392
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="CommunityToolkit.Aspire.Hosting.NodeJS.Extensions" Version="9.8.0-beta.392" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="CommunityToolkit.Aspire.Hosting.NodeJS.Extensions" Version="9.8.0-beta.392" />
                    
Directory.Packages.props
<PackageReference Include="CommunityToolkit.Aspire.Hosting.NodeJS.Extensions" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add CommunityToolkit.Aspire.Hosting.NodeJS.Extensions --version 9.8.0-beta.392
                    
#r "nuget: CommunityToolkit.Aspire.Hosting.NodeJS.Extensions, 9.8.0-beta.392"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package CommunityToolkit.Aspire.Hosting.NodeJS.Extensions@9.8.0-beta.392
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=CommunityToolkit.Aspire.Hosting.NodeJS.Extensions&version=9.8.0-beta.392&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=CommunityToolkit.Aspire.Hosting.NodeJS.Extensions&version=9.8.0-beta.392&prerelease
                    
Install as a Cake Tool

CommunityToolkit.Aspire.Hosting.NodeJS.Extensions library

This integration contains extensions for the Node.js hosting package for .NET Aspire, including support for alternative package managers (yarn and pnpm), frontend monorepos (Nx, Turborepo), as well as developer workflow improvements.

Getting Started

Install the package

In your AppHost project, install the package using the following command:

dotnet add package CommunityToolkit.Aspire.Hosting.NodeJS.Extensions

Example usage

Then, in the Program.cs file of AppHost, define a Node.js resource, then call AddYarnApp or AddPnpmApp:

builder.AddYarnApp("yarn-demo")
    .WithExternalHttpEndpoints();

builder.AddPnpmApp("pnpm-demo")
    .WithExternalHttpEndpoints();

Frontend Monorepo Support

For Nx and Turborepo monorepos, use the dedicated monorepo methods to avoid package installation race conditions:

// Nx workspace
var nx = builder.AddNxApp("nx", workingDirectory: "../frontend")
    .WithNpmPackageInstaller()
    .RunWithPackageManager(); // Automatically uses npm from installer

var app1 = nx.AddApp("app1");
var app2 = nx.AddApp("app2", appName: "my-app-2");

// Turborepo workspace  
var turbo = builder.AddTurborepoApp("turbo", workingDirectory: "../frontend")
    .WithYarnPackageInstaller()
    .RunWithPackageManager("yarn"); // Explicitly specify yarn

var turboApp1 = turbo.AddApp("app1");
var turboApp2 = turbo.AddApp("app2", filter: "custom-filter");

See MONOREPO.md for detailed documentation on monorepo support.

Configuring Package Manager for Monorepos

The RunWithPackageManager() method configures which package manager command is used when running individual apps in Nx or Turborepo workspaces:

// Auto-infer from package installer
var nx = builder.AddNxApp("nx", workingDirectory: "../frontend")
    .WithYarnPackageInstaller()
    .RunWithPackageManager(); // Uses 'yarn' command

// Explicitly specify package manager
var turbo = builder.AddTurborepoApp("turbo", workingDirectory: "../frontend")
    .WithNpmPackageInstaller()
    .RunWithPackageManager("pnpm"); // Uses 'pnpm' command despite npm installer

// Generated commands:
// Nx with yarn: yarn nx serve app1
// Turborepo with pnpm: pnpm turbo run dev --filter app1

Package installation with custom flags

You can pass additional flags to package managers during installation:

// npm with legacy peer deps support
builder.AddNpmApp("npm-app", "./path/to/app")
    .WithNpmPackageInstallation(useCI: false, configureInstaller =>
    {
        configureInstaller.WithArgs("--legacy-peer-deps");
    })
    .WithExternalHttpEndpoints();

// yarn with frozen lockfile
builder.AddYarnApp("yarn-app", "./path/to/app")  
    .WithYarnPackageInstallation(configureInstaller =>
    {
        configureInstaller.WithArgs("--frozen-lockfile", "--verbose");
    })
    .WithExternalHttpEndpoints();

// pnpm with frozen lockfile
builder.AddPnpmApp("pnpm-app", "./path/to/app")
    .WithPnpmPackageInstallation(configureInstaller =>
    {
        configureInstaller.WithArgs("--frozen-lockfile");
    })
    .WithExternalHttpEndpoints();

Additional Information

https://learn.microsoft.com/dotnet/aspire/community-toolkit/hosting-nodejs-extensions

Feedback & contributing

https://github.com/CommunityToolkit/Aspire

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories (2)

Showing the top 2 popular GitHub repositories that depend on CommunityToolkit.Aspire.Hosting.NodeJS.Extensions:

Repository Stars
microsoft/semantic-kernel
Integrate cutting-edge LLM technology quickly and easily into your apps
davidfowl/aspire-ai-chat-demo
Aspire AI Chat is a full-stack chat sample that combines modern technologies to deliver a ChatGPT-like experience.
Version Downloads Last Updated
9.8.0-beta.395 31 9/24/2025
9.8.0-beta.394 39 9/23/2025
9.8.0-beta.393 32 9/23/2025
9.8.0-beta.392 29 9/23/2025
9.8.0-beta.389 284 9/18/2025
9.8.0-beta.388 266 9/16/2025
9.8.0-beta.386 204 9/15/2025
9.8.0-beta.385 195 9/15/2025
9.8.0-beta.384 47 9/13/2025
9.8.0-beta.376 154 9/8/2025
9.8.0-beta.375 59 9/6/2025
9.8.0-beta.373 148 9/5/2025
9.8.0-beta.372 135 9/4/2025
9.8.0-beta.370 132 9/2/2025
9.8.0-beta.364 122 9/1/2025
9.7.2 10,605 8/29/2025
9.7.2-beta.362 162 8/29/2025
9.7.2-beta.361 164 8/29/2025
9.7.2-beta.360 167 8/29/2025
9.7.2-beta.359 162 8/28/2025
9.7.2-beta.358 161 8/28/2025
9.7.2-beta.357 166 8/28/2025
9.7.1 1,668 8/27/2025
9.7.1-beta.355 169 8/27/2025
9.7.1-beta.354 162 8/27/2025
9.7.1-beta.353 163 8/27/2025
9.7.1-beta.352 164 8/27/2025
9.7.1-beta.351 164 8/27/2025
9.7.1-beta.348 378 8/14/2025
9.7.1-beta.344 209 8/10/2025
9.7.1-beta.343 212 8/8/2025
9.7.1-beta.342 215 8/7/2025
9.7.1-beta.341 200 8/6/2025
9.7.1-beta.340 198 8/5/2025
9.7.1-beta.339 183 8/5/2025
9.7.0 11,105 8/1/2025
9.7.0-beta.337 83 8/1/2025
9.7.0-beta.336 98 8/1/2025
9.7.0-beta.335 87 8/1/2025
9.7.0-beta.333 102 7/30/2025
9.6.1-beta.332 96 7/30/2025
9.6.1-beta.331 95 7/30/2025
9.6.1-beta.330 99 7/30/2025
9.6.1-beta.329 97 7/30/2025
9.6.1-beta.328 98 7/29/2025
9.6.1-beta.327 99 7/28/2025
9.6.1-beta.326 96 7/28/2025
9.6.0 12,824 7/10/2025
9.6.0-beta.324 125 7/10/2025
9.5.1-beta.323 127 7/10/2025
9.5.1-beta.322 123 7/10/2025
9.5.1-beta.321 126 7/10/2025
9.5.1-beta.320 131 7/9/2025
9.5.1-beta.319 129 7/8/2025
9.5.1-beta.318 165 7/2/2025
9.5.1-beta.317 179 6/30/2025
9.5.1-beta.315 388 6/26/2025
9.5.1-beta.314 146 6/23/2025
9.5.1-beta.313 114 6/20/2025
9.5.1-beta.312 118 6/20/2025
9.5.1-beta.311 234 6/18/2025
9.5.1-beta.310 145 6/17/2025
9.5.1-beta.309 131 6/17/2025
9.5.1-beta.308 161 6/17/2025
9.5.1-beta.307 128 6/16/2025
9.5.1-beta.306 421 6/11/2025
9.5.1-beta.305 118 6/7/2025
9.5.1-beta.304 123 6/6/2025
9.5.1-beta.303 140 6/4/2025
9.5.1-beta.302 134 6/4/2025
9.5.1-beta.301 148 6/2/2025
9.5.1-beta.300 147 5/28/2025
9.5.0 21,426 5/27/2025
9.5.0-beta.299 149 5/27/2025
9.5.0-beta.298 152 5/26/2025
9.5.0-beta.297 101 5/24/2025
9.5.0-beta.296 100 5/24/2025
9.5.0-beta.295 58 5/24/2025
9.4.1-beta.291 166 5/19/2025
9.4.1-beta.289 178 5/16/2025
9.4.1-beta.288 222 5/16/2025
9.4.1-beta.287 211 5/16/2025
9.4.1-beta.286 210 5/16/2025
9.4.1-beta.285 269 5/14/2025
9.4.1-beta.284 229 5/13/2025
9.4.1-beta.283 242 5/12/2025
9.4.1-beta.282 171 5/7/2025
9.4.1-beta.280 170 5/2/2025
9.4.1-beta.279 132 5/2/2025
9.4.1-beta.277 385 4/23/2025
9.4.1-beta.276 173 4/23/2025
9.4.1-beta.275 160 4/23/2025
9.4.1-beta.274 153 4/23/2025
9.4.1-beta.273 160 4/23/2025
9.4.1-beta.272 139 4/23/2025
9.4.1-beta.271 154 4/23/2025
9.4.1-beta.270 160 4/20/2025
9.4.0 30,714 4/20/2025
9.4.0-beta.269 153 4/20/2025
9.4.0-beta.268 152 4/20/2025
9.3.1-beta.267 153 4/20/2025
9.3.1-beta.266 82 4/19/2025
9.3.1-beta.265 217 4/15/2025
9.3.1-beta.264 183 4/15/2025
9.3.1-beta.263 194 4/15/2025
9.3.1-beta.262 181 4/15/2025
9.3.1-beta.260 194 4/10/2025
9.3.1-beta.259 170 4/8/2025
9.3.1-beta.258 157 4/8/2025
9.3.1-beta.257 155 4/8/2025
9.3.1-beta.256 162 4/8/2025
9.3.1-beta.255 161 4/8/2025
9.3.1-beta.254 163 4/8/2025
9.3.1-beta.253 158 4/1/2025
9.3.1-beta.252 138 3/27/2025
9.3.1-beta.250 137 3/27/2025
9.3.1-beta.249 135 3/27/2025
9.3.1-beta.248 134 3/27/2025
9.3.1-beta.247 138 3/27/2025
9.3.1-beta.244 489 3/25/2025
9.3.1-beta.242 484 3/24/2025
9.3.1-beta.241 143 3/19/2025
9.3.0 16,797 3/19/2025
9.3.0-beta.239 155 3/19/2025
9.2.2-beta.237 143 3/19/2025
9.2.2-beta.236 108 3/14/2025
9.2.2-beta.230 156 3/13/2025
9.2.2-beta.229 140 3/13/2025
9.2.2-beta.228 178 3/11/2025
9.2.2-beta.227 168 3/11/2025
9.2.2-beta.226 153 3/11/2025
9.2.2-beta.225 162 3/11/2025
9.2.2-beta.224 160 3/11/2025
9.2.2-beta.223 153 3/10/2025
9.2.2-beta.222 159 3/10/2025
9.2.2-beta.220 160 3/9/2025
9.2.2-beta.218 151 3/9/2025
9.2.2-beta.217 199 3/7/2025
9.2.2-beta.216 196 3/7/2025
9.2.2-beta.215 197 3/7/2025
9.2.2-beta.214 199 3/5/2025
9.2.2-beta.213 190 3/5/2025
9.2.2-beta.212 195 3/5/2025
9.2.2-beta.211 198 3/4/2025
9.2.2-beta.210 195 3/4/2025
9.2.2-beta.208 94 3/3/2025
9.2.1 3,983 3/3/2025
9.2.1-beta.207 124 3/2/2025
9.2.1-beta.206 88 3/1/2025
9.2.1-beta.205 93 2/27/2025
9.2.1-beta.204 75 2/26/2025
9.2.1-beta.203 83 2/26/2025
9.2.0 2,200 2/26/2025
9.2.0-beta.202 85 2/26/2025
9.2.0-beta.201 88 2/26/2025
9.2.0-beta.199 94 2/26/2025
9.2.0-beta.198 75 2/26/2025
9.1.1-beta.197 86 2/25/2025
9.1.1-beta.196 98 2/25/2025
9.1.1-beta.195 94 2/25/2025
9.1.1-beta.194 84 2/25/2025
9.1.1-beta.193 90 2/25/2025
9.1.1-beta.192 89 2/24/2025
9.1.1-beta.191 94 2/24/2025
9.1.1-beta.190 86 2/19/2025
9.1.1-beta.189 87 2/19/2025
9.1.1-beta.188 146 2/19/2025
9.1.1-beta.187 111 2/19/2025
9.1.1-beta.183 100 2/18/2025
9.1.1-beta.182 91 2/18/2025
9.1.1-beta.181 101 2/18/2025
9.1.1-beta.180 91 2/17/2025
9.1.1-beta.178 95 2/17/2025
9.1.1-beta.177 88 2/12/2025
9.1.1-beta.176 100 2/11/2025
9.1.1-beta.175 87 2/11/2025
9.1.1-beta.173 106 2/10/2025
9.1.1-beta.169 123 2/6/2025
9.1.1-beta.168 79 2/5/2025
9.1.1-beta.166 101 2/5/2025
9.1.1-beta.165 86 2/5/2025
9.1.1-beta.164 99 2/3/2025
9.1.1-beta.162 90 2/3/2025
9.1.1-beta.155 101 1/30/2025
9.1.1-beta.154 80 1/30/2025
9.1.1-beta.153 96 1/30/2025
9.1.1-beta.152 80 1/29/2025
9.1.1-beta.150 93 1/29/2025
9.1.1-beta.148 104 1/26/2025
9.1.1-beta.147 84 1/26/2025
9.1.1-beta.146 92 1/23/2025
9.1.1-beta.145 86 1/22/2025
9.1.1-beta.144 89 1/22/2025
9.1.1-beta.142 69 1/22/2025
9.1.1-beta.140 91 1/22/2025
9.1.1-beta.139 92 1/21/2025
9.1.1-beta.138 83 1/20/2025
9.1.1-beta.137 83 1/17/2025
9.1.1-beta.136 76 1/15/2025
9.1.1-beta.135 61 1/15/2025
9.1.1-beta.134 56 1/15/2025
9.1.1-beta.128 120 1/9/2025
9.1.1-beta.127 78 1/9/2025
9.1.1-beta.126 75 1/9/2025
9.1.1-beta.125 65 1/9/2025
9.1.1-beta.124 74 1/9/2025
9.1.0 12,529 12/12/2024
9.1.0-beta.123 86 1/3/2025
9.1.0-beta.122 93 1/3/2025
9.1.0-beta.121 93 1/2/2025
9.1.0-beta.120 95 12/30/2024
9.1.0-beta.119 88 12/30/2024
9.1.0-beta.118 88 12/30/2024
9.1.0-beta.116 97 12/30/2024
9.1.0-beta.114 94 12/30/2024
9.1.0-beta.113 89 12/30/2024
9.1.0-beta.112 83 12/18/2024
9.1.0-beta.110 90 12/16/2024
9.1.0-beta.109 81 12/12/2024
9.0.1-beta.108 91 12/12/2024
9.0.1-beta.107 84 12/11/2024
9.0.1-beta.106 89 12/12/2024
9.0.1-beta.104 85 12/11/2024
9.0.1-beta.102 96 12/6/2024
9.0.1-beta.99 92 12/6/2024
9.0.1-beta.98 95 12/6/2024
9.0.1-beta.95 82 12/5/2024
9.0.1-beta.94 88 12/5/2024
9.0.1-beta.93 91 12/2/2024
9.0.1-beta.92 99 11/30/2024
9.0.1-beta.91 94 11/30/2024
9.0.1-beta.90 100 11/29/2024
9.0.1-beta.89 85 11/29/2024
9.0.1-beta.88 80 11/27/2024
9.0.1-beta.87 84 11/27/2024
9.0.1-beta.86 93 11/27/2024
9.0.1-beta.84 88 11/24/2024
9.0.1-beta.83 87 11/22/2024
9.0.1-beta.82 94 11/21/2024
9.0.1-beta.81 85 11/19/2024
9.0.1-beta.80 82 11/19/2024
9.0.1-beta.79 83 11/19/2024
9.0.1-beta.77 773 11/15/2024
9.0.0 6,669 11/15/2024
9.0.0-beta.76 91 11/14/2024
9.0.0-beta.75 86 11/14/2024
9.0.0-beta.74 81 11/14/2024
9.0.0-beta.73 82 11/14/2024
9.0.0-beta.72 84 11/14/2024
9.0.0-beta.71 91 11/13/2024
9.0.0-beta.70 90 11/13/2024
9.0.0-beta.69 95 11/13/2024
9.0.0-beta.68 73 11/13/2024
9.0.0-beta.67 95 11/13/2024
9.0.0-beta.66 91 11/13/2024
9.0.0-beta.63 96 11/12/2024
9.0.0-beta.54 96 10/31/2024
9.0.0-beta.53 82 10/29/2024
8.3.0 438 10/29/2024
8.3.0-beta.51 82 10/29/2024
8.3.0-beta.50 84 10/28/2024
8.3.0-beta.49 88 10/28/2024
8.3.0-beta.48 83 10/28/2024
8.3.0-beta.47 88 10/28/2024
8.3.0-beta.46 101 10/27/2024
8.3.0-beta.45 88 10/25/2024
8.3.0-beta.44 119 10/25/2024
8.3.0-beta.43 90 10/25/2024
8.3.0-beta.42 87 10/24/2024
8.2.1 309 10/23/2024
8.2.1-beta.40 80 10/23/2024
8.2.1-beta.39 86 10/23/2024
8.2.1-beta.38 87 10/23/2024
8.2.1-beta.37 73 10/23/2024
8.2.1-beta.36 88 10/23/2024
8.2.1-beta.35 94 10/23/2024
8.2.0-beta.34 92 10/23/2024
8.2.0-beta.33 81 10/23/2024
8.2.0-beta.32 90 10/22/2024
1.0.0-beta.60 99 11/11/2024
1.0.0-beta.58 94 11/4/2024
1.0.0-beta.57 88 11/1/2024
1.0.0-beta.56 73 11/1/2024
1.0.0-beta.55 77 11/1/2024