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

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