CommunityToolkit.Aspire.Hosting.NodeJS.Extensions 9.9.0

Prefix Reserved
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.9.0
                    
NuGet\Install-Package CommunityToolkit.Aspire.Hosting.NodeJS.Extensions -Version 9.9.0
                    
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.9.0" />
                    
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.9.0" />
                    
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.9.0
                    
#r "nuget: CommunityToolkit.Aspire.Hosting.NodeJS.Extensions, 9.9.0"
                    
#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.9.0
                    
#: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.9.0
                    
Install as a Cake Addin
#tool nuget:?package=CommunityToolkit.Aspire.Hosting.NodeJS.Extensions&version=9.9.0
                    
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
13.0.0-beta.435 407 11/11/2025 13.0.0-beta.435 is deprecated because it is no longer maintained.
13.0.0-beta.433 172 11/10/2025 13.0.0-beta.433 is deprecated because it is no longer maintained.
13.0.0-beta.432 152 11/10/2025 13.0.0-beta.432 is deprecated because it is no longer maintained.
13.0.0-beta.431 154 11/6/2025 13.0.0-beta.431 is deprecated because it is no longer maintained.
13.0.0-beta.430 152 11/6/2025 13.0.0-beta.430 is deprecated because it is no longer maintained.
9.9.0 16,125 11/3/2025
9.9.0-beta.427 145 11/3/2025
9.8.1-beta.426 300 11/3/2025
9.8.1-beta.424 324 10/28/2025
9.8.1-beta.420 129 10/27/2025
9.8.1-beta.419 128 10/27/2025
9.8.1-beta.417 127 10/27/2025
9.8.1-beta.414 146 10/24/2025
9.8.1-beta.413 173 10/22/2025
9.8.1-beta.410 172 10/16/2025
9.8.1-beta.408 114 10/16/2025
9.8.1-beta.407 117 10/16/2025
9.8.1-beta.406 128 10/15/2025
9.8.0 37,824 9/26/2025
9.8.0-beta.405 129 10/15/2025
9.8.0-beta.404 130 10/13/2025
9.8.0-beta.402 137 9/29/2025
9.8.0-beta.401 133 9/29/2025
9.8.0-beta.399 131 9/26/2025
9.8.0-beta.398 137 9/25/2025
9.8.0-beta.397 137 9/25/2025
9.8.0-beta.395 152 9/24/2025
9.8.0-beta.394 287 9/23/2025
9.8.0-beta.393 132 9/23/2025
9.8.0-beta.392 127 9/23/2025
9.8.0-beta.389 471 9/18/2025
9.8.0-beta.388 317 9/16/2025
9.8.0-beta.386 233 9/15/2025
9.8.0-beta.385 206 9/15/2025
9.8.0-beta.384 60 9/13/2025
9.8.0-beta.376 189 9/8/2025
9.8.0-beta.375 68 9/6/2025
9.8.0-beta.373 170 9/5/2025
9.8.0-beta.372 146 9/4/2025
9.8.0-beta.370 148 9/2/2025
9.8.0-beta.364 134 9/1/2025
9.7.2 21,571 8/29/2025
9.7.2-beta.362 171 8/29/2025
9.7.2-beta.361 175 8/29/2025
9.7.2-beta.360 178 8/29/2025
9.7.2-beta.359 170 8/28/2025
9.7.2-beta.358 170 8/28/2025
9.7.2-beta.357 174 8/28/2025
9.7.1 2,207 8/27/2025
9.7.1-beta.355 179 8/27/2025
9.7.1-beta.354 170 8/27/2025
9.7.1-beta.353 174 8/27/2025
9.7.1-beta.352 175 8/27/2025
9.7.1-beta.351 174 8/27/2025
9.7.1-beta.348 401 8/14/2025
9.7.1-beta.344 274 8/10/2025
9.7.1-beta.343 220 8/8/2025
9.7.1-beta.342 228 8/7/2025
9.7.1-beta.341 214 8/6/2025
9.7.1-beta.340 207 8/5/2025
9.7.1-beta.339 191 8/5/2025
9.7.0 18,612 8/1/2025
9.7.0-beta.337 93 8/1/2025
9.7.0-beta.336 111 8/1/2025
9.7.0-beta.335 96 8/1/2025
9.7.0-beta.333 111 7/30/2025
9.6.1-beta.332 105 7/30/2025
9.6.1-beta.331 104 7/30/2025
9.6.1-beta.330 111 7/30/2025
9.6.1-beta.329 108 7/30/2025
9.6.1-beta.328 112 7/29/2025
9.6.1-beta.327 126 7/28/2025
9.6.1-beta.326 124 7/28/2025
9.6.0 15,367 7/10/2025
9.6.0-beta.324 130 7/10/2025
9.5.1-beta.323 135 7/10/2025
9.5.1-beta.322 130 7/10/2025
9.5.1-beta.321 132 7/10/2025
9.5.1-beta.320 140 7/9/2025
9.5.1-beta.319 135 7/8/2025
9.5.1-beta.318 177 7/2/2025
9.5.1-beta.317 198 6/30/2025
9.5.1-beta.315 651 6/26/2025
9.5.1-beta.314 164 6/23/2025
9.5.1-beta.313 123 6/20/2025
9.5.1-beta.312 127 6/20/2025
9.5.1-beta.311 287 6/18/2025
9.5.1-beta.310 168 6/17/2025
9.5.1-beta.309 144 6/17/2025
9.5.1-beta.308 176 6/17/2025
9.5.1-beta.307 147 6/16/2025
9.5.1-beta.306 617 6/11/2025
9.5.1-beta.305 146 6/7/2025
9.5.1-beta.304 138 6/6/2025
9.5.1-beta.303 155 6/4/2025
9.5.1-beta.302 153 6/4/2025
9.5.1-beta.301 169 6/2/2025
9.5.1-beta.300 157 5/28/2025
9.5.0 26,667 5/27/2025
9.5.0-beta.299 157 5/27/2025
9.5.0-beta.298 165 5/26/2025
9.5.0-beta.297 125 5/24/2025
9.5.0-beta.296 124 5/24/2025
9.5.0-beta.295 80 5/24/2025
9.4.1-beta.291 172 5/19/2025
9.4.1-beta.289 195 5/16/2025
9.4.1-beta.288 244 5/16/2025
9.4.1-beta.287 225 5/16/2025
9.4.1-beta.286 224 5/16/2025
9.4.1-beta.285 288 5/14/2025
9.4.1-beta.284 257 5/13/2025
9.4.1-beta.283 264 5/12/2025
9.4.1-beta.282 184 5/7/2025
9.4.1-beta.280 184 5/2/2025
9.4.1-beta.279 146 5/2/2025
9.4.1-beta.277 432 4/23/2025
9.4.1-beta.276 192 4/23/2025
9.4.1-beta.275 180 4/23/2025
9.4.1-beta.274 158 4/23/2025
9.4.1-beta.273 176 4/23/2025
9.4.1-beta.272 147 4/23/2025
9.4.1-beta.271 168 4/23/2025
9.4.1-beta.270 179 4/20/2025
9.4.0 39,284 4/20/2025
9.4.0-beta.269 172 4/20/2025
9.4.0-beta.268 173 4/20/2025
9.3.1-beta.267 177 4/20/2025
9.3.1-beta.266 95 4/19/2025
9.3.1-beta.265 227 4/15/2025
9.3.1-beta.264 202 4/15/2025
9.3.1-beta.263 214 4/15/2025
9.3.1-beta.262 194 4/15/2025
9.3.1-beta.260 215 4/10/2025
9.3.1-beta.259 191 4/8/2025
9.3.1-beta.258 179 4/8/2025
9.3.1-beta.257 182 4/8/2025
9.3.1-beta.256 180 4/8/2025
9.3.1-beta.255 178 4/8/2025
9.3.1-beta.254 180 4/8/2025
9.3.1-beta.253 181 4/1/2025
9.3.1-beta.252 152 3/27/2025
9.3.1-beta.250 157 3/27/2025
9.3.1-beta.249 152 3/27/2025
9.3.1-beta.248 154 3/27/2025
9.3.1-beta.247 164 3/27/2025
9.3.1-beta.244 508 3/25/2025
9.3.1-beta.242 506 3/24/2025
9.3.1-beta.241 150 3/19/2025
9.3.0 28,746 3/19/2025
9.3.0-beta.239 173 3/19/2025
9.2.2-beta.237 160 3/19/2025
9.2.2-beta.236 118 3/14/2025
9.2.2-beta.230 174 3/13/2025
9.2.2-beta.229 163 3/13/2025
9.2.2-beta.228 194 3/11/2025
9.2.2-beta.227 186 3/11/2025
9.2.2-beta.226 174 3/11/2025
9.2.2-beta.225 181 3/11/2025
9.2.2-beta.224 182 3/11/2025
9.2.2-beta.223 171 3/10/2025
9.2.2-beta.222 183 3/10/2025
9.2.2-beta.220 180 3/9/2025
9.2.2-beta.218 168 3/9/2025
9.2.2-beta.217 228 3/7/2025
9.2.2-beta.216 216 3/7/2025
9.2.2-beta.215 215 3/7/2025
9.2.2-beta.214 220 3/5/2025
9.2.2-beta.213 209 3/5/2025
9.2.2-beta.212 217 3/5/2025
9.2.2-beta.211 213 3/4/2025
9.2.2-beta.210 214 3/4/2025
9.2.2-beta.208 121 3/3/2025
9.2.1 4,157 3/3/2025
9.2.1-beta.207 144 3/2/2025
9.2.1-beta.206 110 3/1/2025
9.2.1-beta.205 113 2/27/2025
9.2.1-beta.204 83 2/26/2025
9.2.1-beta.203 96 2/26/2025
9.2.0 2,241 2/26/2025
9.2.0-beta.202 105 2/26/2025
9.2.0-beta.201 103 2/26/2025
9.2.0-beta.199 114 2/26/2025
9.2.0-beta.198 82 2/26/2025
9.1.1-beta.197 109 2/25/2025
9.1.1-beta.196 125 2/25/2025
9.1.1-beta.195 115 2/25/2025
9.1.1-beta.194 99 2/25/2025
9.1.1-beta.193 112 2/25/2025
9.1.1-beta.192 108 2/24/2025
9.1.1-beta.191 117 2/24/2025
9.1.1-beta.190 109 2/19/2025
9.1.1-beta.189 108 2/19/2025
9.1.1-beta.188 188 2/19/2025
9.1.1-beta.187 122 2/19/2025
9.1.1-beta.183 123 2/18/2025
9.1.1-beta.182 111 2/18/2025
9.1.1-beta.181 124 2/18/2025
9.1.1-beta.180 108 2/17/2025
9.1.1-beta.178 117 2/17/2025
9.1.1-beta.177 93 2/12/2025
9.1.1-beta.176 113 2/11/2025
9.1.1-beta.175 105 2/11/2025
9.1.1-beta.173 120 2/10/2025
9.1.1-beta.169 153 2/6/2025
9.1.1-beta.168 90 2/5/2025
9.1.1-beta.166 122 2/5/2025
9.1.1-beta.165 107 2/5/2025
9.1.1-beta.164 120 2/3/2025
9.1.1-beta.162 119 2/3/2025
9.1.1-beta.155 116 1/30/2025
9.1.1-beta.154 95 1/30/2025
9.1.1-beta.153 118 1/30/2025
9.1.1-beta.152 95 1/29/2025
9.1.1-beta.150 119 1/29/2025
9.1.1-beta.148 118 1/26/2025
9.1.1-beta.147 106 1/26/2025
9.1.1-beta.146 119 1/23/2025
9.1.1-beta.145 97 1/22/2025
9.1.1-beta.144 107 1/22/2025
9.1.1-beta.142 74 1/22/2025
9.1.1-beta.140 102 1/22/2025
9.1.1-beta.139 110 1/21/2025
9.1.1-beta.138 98 1/20/2025
9.1.1-beta.137 96 1/17/2025
9.1.1-beta.136 91 1/15/2025
9.1.1-beta.135 81 1/15/2025
9.1.1-beta.134 73 1/15/2025
9.1.1-beta.128 145 1/9/2025
9.1.1-beta.127 97 1/9/2025
9.1.1-beta.126 94 1/9/2025
9.1.1-beta.125 71 1/9/2025
9.1.1-beta.124 93 1/9/2025
9.1.0 13,278 12/12/2024
9.1.0-beta.123 94 1/3/2025
9.1.0-beta.122 108 1/3/2025
9.1.0-beta.121 106 1/2/2025
9.1.0-beta.120 108 12/30/2024
9.1.0-beta.119 106 12/30/2024
9.1.0-beta.118 110 12/30/2024
9.1.0-beta.116 115 12/30/2024
9.1.0-beta.114 110 12/30/2024
9.1.0-beta.113 110 12/30/2024
9.1.0-beta.112 102 12/18/2024
9.1.0-beta.110 106 12/16/2024
9.1.0-beta.109 86 12/12/2024
9.0.1-beta.108 110 12/12/2024
9.0.1-beta.107 101 12/11/2024
9.0.1-beta.106 109 12/12/2024
9.0.1-beta.104 105 12/11/2024
9.0.1-beta.102 114 12/6/2024
9.0.1-beta.99 114 12/6/2024
9.0.1-beta.98 110 12/6/2024
9.0.1-beta.95 99 12/5/2024
9.0.1-beta.94 104 12/5/2024
9.0.1-beta.93 115 12/2/2024
9.0.1-beta.92 117 11/30/2024
9.0.1-beta.91 118 11/30/2024
9.0.1-beta.90 118 11/29/2024
9.0.1-beta.89 105 11/29/2024
9.0.1-beta.88 100 11/27/2024
9.0.1-beta.87 103 11/27/2024
9.0.1-beta.86 109 11/27/2024
9.0.1-beta.84 110 11/24/2024
9.0.1-beta.83 106 11/22/2024
9.0.1-beta.82 113 11/21/2024
9.0.1-beta.81 100 11/19/2024
9.0.1-beta.80 108 11/19/2024
9.0.1-beta.79 107 11/19/2024
9.0.1-beta.77 820 11/15/2024
9.0.0 8,273 11/15/2024
9.0.0-beta.76 113 11/14/2024
9.0.0-beta.75 104 11/14/2024
9.0.0-beta.74 104 11/14/2024
9.0.0-beta.73 90 11/14/2024
9.0.0-beta.72 102 11/14/2024
9.0.0-beta.71 107 11/13/2024
9.0.0-beta.70 108 11/13/2024
9.0.0-beta.69 116 11/13/2024
9.0.0-beta.68 81 11/13/2024
9.0.0-beta.67 113 11/13/2024
9.0.0-beta.66 120 11/13/2024
9.0.0-beta.63 114 11/12/2024
9.0.0-beta.54 110 10/31/2024
9.0.0-beta.53 99 10/29/2024
8.3.0 483 10/29/2024
8.3.0-beta.51 93 10/29/2024
8.3.0-beta.50 93 10/28/2024
8.3.0-beta.49 107 10/28/2024
8.3.0-beta.48 100 10/28/2024
8.3.0-beta.47 110 10/28/2024
8.3.0-beta.46 124 10/27/2024
8.3.0-beta.45 106 10/25/2024
8.3.0-beta.44 141 10/25/2024
8.3.0-beta.43 111 10/25/2024
8.3.0-beta.42 107 10/24/2024
8.2.1 1,384 10/23/2024
8.2.1-beta.40 98 10/23/2024
8.2.1-beta.39 102 10/23/2024
8.2.1-beta.38 106 10/23/2024
8.2.1-beta.37 82 10/23/2024
8.2.1-beta.36 107 10/23/2024
8.2.1-beta.35 116 10/23/2024
8.2.0-beta.34 111 10/23/2024
8.2.0-beta.33 90 10/23/2024
8.2.0-beta.32 108 10/22/2024
1.0.0-beta.60 117 11/11/2024
1.0.0-beta.58 113 11/4/2024
1.0.0-beta.57 101 11/1/2024
1.0.0-beta.56 80 11/1/2024
1.0.0-beta.55 85 11/1/2024