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 [email protected]
                    
#: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 690 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 32,189 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 185 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,624 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 288 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 330 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,934 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,283 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 407 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,573 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,513 7/10/2025
9.6.0-beta.324 130 7/10/2025
9.5.1-beta.323 157 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 826 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 635 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,607 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,899 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,721 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,295 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,247 2/26/2025
9.2.0-beta.202 105 2/26/2025
9.2.0-beta.201 106 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 110 2/25/2025
9.1.1-beta.196 127 2/25/2025
9.1.1-beta.195 115 2/25/2025
9.1.1-beta.194 100 2/25/2025
9.1.1-beta.193 116 2/25/2025
9.1.1-beta.192 109 2/24/2025
9.1.1-beta.191 117 2/24/2025
9.1.1-beta.190 110 2/19/2025
9.1.1-beta.189 109 2/19/2025
9.1.1-beta.188 188 2/19/2025
9.1.1-beta.187 123 2/19/2025
9.1.1-beta.183 125 2/18/2025
9.1.1-beta.182 112 2/18/2025
9.1.1-beta.181 125 2/18/2025
9.1.1-beta.180 111 2/17/2025
9.1.1-beta.178 120 2/17/2025
9.1.1-beta.177 95 2/12/2025
9.1.1-beta.176 113 2/11/2025
9.1.1-beta.175 108 2/11/2025
9.1.1-beta.173 122 2/10/2025
9.1.1-beta.169 154 2/6/2025
9.1.1-beta.168 92 2/5/2025
9.1.1-beta.166 125 2/5/2025
9.1.1-beta.165 110 2/5/2025
9.1.1-beta.164 121 2/3/2025
9.1.1-beta.162 121 2/3/2025
9.1.1-beta.155 117 1/30/2025
9.1.1-beta.154 96 1/30/2025
9.1.1-beta.153 120 1/30/2025
9.1.1-beta.152 97 1/29/2025
9.1.1-beta.150 120 1/29/2025
9.1.1-beta.148 123 1/26/2025
9.1.1-beta.147 107 1/26/2025
9.1.1-beta.146 120 1/23/2025
9.1.1-beta.145 98 1/22/2025
9.1.1-beta.144 108 1/22/2025
9.1.1-beta.142 76 1/22/2025
9.1.1-beta.140 105 1/22/2025
9.1.1-beta.139 112 1/21/2025
9.1.1-beta.138 101 1/20/2025
9.1.1-beta.137 98 1/17/2025
9.1.1-beta.136 92 1/15/2025
9.1.1-beta.135 84 1/15/2025
9.1.1-beta.134 74 1/15/2025
9.1.1-beta.128 148 1/9/2025
9.1.1-beta.127 98 1/9/2025
9.1.1-beta.126 97 1/9/2025
9.1.1-beta.125 72 1/9/2025
9.1.1-beta.124 94 1/9/2025
9.1.0 13,363 12/12/2024
9.1.0-beta.123 95 1/3/2025
9.1.0-beta.122 110 1/3/2025
9.1.0-beta.121 107 1/2/2025
9.1.0-beta.120 110 12/30/2024
9.1.0-beta.119 107 12/30/2024
9.1.0-beta.118 115 12/30/2024
9.1.0-beta.116 117 12/30/2024
9.1.0-beta.114 111 12/30/2024
9.1.0-beta.113 114 12/30/2024
9.1.0-beta.112 103 12/18/2024
9.1.0-beta.110 110 12/16/2024
9.1.0-beta.109 87 12/12/2024
9.0.1-beta.108 111 12/12/2024
9.0.1-beta.107 102 12/11/2024
9.0.1-beta.106 112 12/12/2024
9.0.1-beta.104 106 12/11/2024
9.0.1-beta.102 116 12/6/2024
9.0.1-beta.99 115 12/6/2024
9.0.1-beta.98 111 12/6/2024
9.0.1-beta.95 100 12/5/2024
9.0.1-beta.94 106 12/5/2024
9.0.1-beta.93 118 12/2/2024
9.0.1-beta.92 118 11/30/2024
9.0.1-beta.91 121 11/30/2024
9.0.1-beta.90 119 11/29/2024
9.0.1-beta.89 106 11/29/2024
9.0.1-beta.88 102 11/27/2024
9.0.1-beta.87 105 11/27/2024
9.0.1-beta.86 111 11/27/2024
9.0.1-beta.84 111 11/24/2024
9.0.1-beta.83 107 11/22/2024
9.0.1-beta.82 118 11/21/2024
9.0.1-beta.81 101 11/19/2024
9.0.1-beta.80 109 11/19/2024
9.0.1-beta.79 110 11/19/2024
9.0.1-beta.77 834 11/15/2024
9.0.0 8,853 11/15/2024
9.0.0-beta.76 114 11/14/2024
9.0.0-beta.75 105 11/14/2024
9.0.0-beta.74 106 11/14/2024
9.0.0-beta.73 93 11/14/2024
9.0.0-beta.72 105 11/14/2024
9.0.0-beta.71 109 11/13/2024
9.0.0-beta.70 110 11/13/2024
9.0.0-beta.69 117 11/13/2024
9.0.0-beta.68 84 11/13/2024
9.0.0-beta.67 114 11/13/2024
9.0.0-beta.66 121 11/13/2024
9.0.0-beta.63 115 11/12/2024
9.0.0-beta.54 114 10/31/2024
9.0.0-beta.53 104 10/29/2024
8.3.0 486 10/29/2024
8.3.0-beta.51 94 10/29/2024
8.3.0-beta.50 94 10/28/2024
8.3.0-beta.49 109 10/28/2024
8.3.0-beta.48 102 10/28/2024
8.3.0-beta.47 112 10/28/2024
8.3.0-beta.46 129 10/27/2024
8.3.0-beta.45 108 10/25/2024
8.3.0-beta.44 142 10/25/2024
8.3.0-beta.43 114 10/25/2024
8.3.0-beta.42 109 10/24/2024
8.2.1 2,588 10/23/2024
8.2.1-beta.40 99 10/23/2024
8.2.1-beta.39 103 10/23/2024
8.2.1-beta.38 107 10/23/2024
8.2.1-beta.37 83 10/23/2024
8.2.1-beta.36 108 10/23/2024
8.2.1-beta.35 118 10/23/2024
8.2.0-beta.34 112 10/23/2024
8.2.0-beta.33 94 10/23/2024
8.2.0-beta.32 109 10/22/2024
1.0.0-beta.60 119 11/11/2024
1.0.0-beta.58 114 11/4/2024
1.0.0-beta.57 102 11/1/2024
1.0.0-beta.56 81 11/1/2024
1.0.0-beta.55 88 11/1/2024