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 660 11/11/2025 13.0.0-beta.435 is deprecated because it is no longer maintained.
13.0.0-beta.433 249 11/10/2025 13.0.0-beta.433 is deprecated because it is no longer maintained.
13.0.0-beta.432 229 11/10/2025 13.0.0-beta.432 is deprecated because it is no longer maintained.
13.0.0-beta.431 229 11/6/2025 13.0.0-beta.431 is deprecated because it is no longer maintained.
13.0.0-beta.430 230 11/6/2025 13.0.0-beta.430 is deprecated because it is no longer maintained.
9.9.0 30,717 11/3/2025
9.9.0-beta.427 148 11/3/2025
9.8.1-beta.426 553 11/3/2025
9.8.1-beta.424 328 10/28/2025
9.8.1-beta.420 130 10/27/2025
9.8.1-beta.419 132 10/27/2025
9.8.1-beta.417 130 10/27/2025
9.8.1-beta.414 146 10/24/2025
9.8.1-beta.413 184 10/22/2025
9.8.1-beta.410 173 10/16/2025
9.8.1-beta.408 114 10/16/2025
9.8.1-beta.407 118 10/16/2025
9.8.1-beta.406 128 10/15/2025
9.8.0 42,206 9/26/2025
9.8.0-beta.405 130 10/15/2025
9.8.0-beta.404 131 10/13/2025
9.8.0-beta.402 137 9/29/2025
9.8.0-beta.401 134 9/29/2025
9.8.0-beta.399 131 9/26/2025
9.8.0-beta.398 138 9/25/2025
9.8.0-beta.397 138 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 133 9/23/2025
9.8.0-beta.392 127 9/23/2025
9.8.0-beta.389 484 9/18/2025
9.8.0-beta.388 329 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 70 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 151 9/2/2025
9.8.0-beta.364 135 9/1/2025
9.7.2 22,797 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 172 8/28/2025
9.7.2-beta.357 174 8/28/2025
9.7.1 2,264 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 175 8/27/2025
9.7.1-beta.348 403 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 215 8/6/2025
9.7.1-beta.340 207 8/5/2025
9.7.1-beta.339 193 8/5/2025
9.7.0 20,356 8/1/2025
9.7.0-beta.337 94 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 107 7/30/2025
9.6.1-beta.331 105 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 127 7/28/2025
9.6.0 15,503 7/10/2025
9.6.0-beta.324 130 7/10/2025
9.5.1-beta.323 153 7/10/2025
9.5.1-beta.322 131 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 138 7/8/2025
9.5.1-beta.318 178 7/2/2025
9.5.1-beta.317 199 6/30/2025
9.5.1-beta.315 816 6/26/2025
9.5.1-beta.314 164 6/23/2025
9.5.1-beta.313 126 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 170 6/17/2025
9.5.1-beta.309 145 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 634 6/11/2025
9.5.1-beta.305 146 6/7/2025
9.5.1-beta.304 139 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 159 5/28/2025
9.5.0 27,552 5/27/2025
9.5.0-beta.299 158 5/27/2025
9.5.0-beta.298 167 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 196 5/16/2025
9.4.1-beta.288 246 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 289 5/14/2025
9.4.1-beta.284 257 5/13/2025
9.4.1-beta.283 265 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 438 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 177 4/23/2025
9.4.1-beta.272 148 4/23/2025
9.4.1-beta.271 171 4/23/2025
9.4.1-beta.270 180 4/20/2025
9.4.0 40,826 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 205 4/15/2025
9.3.1-beta.263 215 4/15/2025
9.3.1-beta.262 195 4/15/2025
9.3.1-beta.260 216 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 183 4/1/2025
9.3.1-beta.252 152 3/27/2025
9.3.1-beta.250 159 3/27/2025
9.3.1-beta.249 154 3/27/2025
9.3.1-beta.248 156 3/27/2025
9.3.1-beta.247 164 3/27/2025
9.3.1-beta.244 510 3/25/2025
9.3.1-beta.242 508 3/24/2025
9.3.1-beta.241 150 3/19/2025
9.3.0 30,600 3/19/2025
9.3.0-beta.239 175 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 196 3/11/2025
9.2.2-beta.227 187 3/11/2025
9.2.2-beta.226 175 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 173 3/10/2025
9.2.2-beta.222 183 3/10/2025
9.2.2-beta.220 182 3/9/2025
9.2.2-beta.218 168 3/9/2025
9.2.2-beta.217 231 3/7/2025
9.2.2-beta.216 216 3/7/2025
9.2.2-beta.215 217 3/7/2025
9.2.2-beta.214 221 3/5/2025
9.2.2-beta.213 212 3/5/2025
9.2.2-beta.212 218 3/5/2025
9.2.2-beta.211 215 3/4/2025
9.2.2-beta.210 214 3/4/2025
9.2.2-beta.208 122 3/3/2025
9.2.1 4,290 3/3/2025
9.2.1-beta.207 144 3/2/2025
9.2.1-beta.206 111 3/1/2025
9.2.1-beta.205 114 2/27/2025
9.2.1-beta.204 84 2/26/2025
9.2.1-beta.203 96 2/26/2025
9.2.0 2,245 2/26/2025
9.2.0-beta.202 105 2/26/2025
9.2.0-beta.201 105 2/26/2025
9.2.0-beta.199 114 2/26/2025
9.2.0-beta.198 83 2/26/2025
9.1.1-beta.197 109 2/25/2025
9.1.1-beta.196 126 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 115 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 124 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 110 2/17/2025
9.1.1-beta.178 119 2/17/2025
9.1.1-beta.177 94 2/12/2025
9.1.1-beta.176 113 2/11/2025
9.1.1-beta.175 107 2/11/2025
9.1.1-beta.173 121 2/10/2025
9.1.1-beta.169 153 2/6/2025
9.1.1-beta.168 91 2/5/2025
9.1.1-beta.166 124 2/5/2025
9.1.1-beta.165 109 2/5/2025
9.1.1-beta.164 120 2/3/2025
9.1.1-beta.162 120 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 119 1/30/2025
9.1.1-beta.152 96 1/29/2025
9.1.1-beta.150 119 1/29/2025
9.1.1-beta.148 122 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 75 1/22/2025
9.1.1-beta.140 104 1/22/2025
9.1.1-beta.139 111 1/21/2025
9.1.1-beta.138 100 1/20/2025
9.1.1-beta.137 97 1/17/2025
9.1.1-beta.136 91 1/15/2025
9.1.1-beta.135 83 1/15/2025
9.1.1-beta.134 73 1/15/2025
9.1.1-beta.128 147 1/9/2025
9.1.1-beta.127 97 1/9/2025
9.1.1-beta.126 96 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,359 12/12/2024
9.1.0-beta.123 94 1/3/2025
9.1.0-beta.122 109 1/3/2025
9.1.0-beta.121 106 1/2/2025
9.1.0-beta.120 109 12/30/2024
9.1.0-beta.119 106 12/30/2024
9.1.0-beta.118 114 12/30/2024
9.1.0-beta.116 116 12/30/2024
9.1.0-beta.114 110 12/30/2024
9.1.0-beta.113 113 12/30/2024
9.1.0-beta.112 102 12/18/2024
9.1.0-beta.110 109 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 111 12/12/2024
9.0.1-beta.104 105 12/11/2024
9.0.1-beta.102 115 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 105 12/5/2024
9.0.1-beta.93 117 12/2/2024
9.0.1-beta.92 117 11/30/2024
9.0.1-beta.91 120 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 101 11/27/2024
9.0.1-beta.87 104 11/27/2024
9.0.1-beta.86 110 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 114 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 109 11/19/2024
9.0.1-beta.77 833 11/15/2024
9.0.0 8,819 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 105 11/14/2024
9.0.0-beta.73 92 11/14/2024
9.0.0-beta.72 104 11/14/2024
9.0.0-beta.71 108 11/13/2024
9.0.0-beta.70 109 11/13/2024
9.0.0-beta.69 116 11/13/2024
9.0.0-beta.68 83 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 112 10/31/2024
9.0.0-beta.53 103 10/29/2024
8.3.0 485 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 108 10/28/2024
8.3.0-beta.48 101 10/28/2024
8.3.0-beta.47 111 10/28/2024
8.3.0-beta.46 128 10/27/2024
8.3.0-beta.45 107 10/25/2024
8.3.0-beta.44 141 10/25/2024
8.3.0-beta.43 113 10/25/2024
8.3.0-beta.42 108 10/24/2024
8.2.1 2,488 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 117 10/23/2024
8.2.0-beta.34 111 10/23/2024
8.2.0-beta.33 93 10/23/2024
8.2.0-beta.32 108 10/22/2024
1.0.0-beta.60 118 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 87 11/1/2024