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