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