CommunityToolkit.Aspire.Hosting.NodeJS.Extensions 9.8.0-beta.402

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