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