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

Prefix Reserved
This is a prerelease version of CommunityToolkit.Aspire.Hosting.NodeJS.Extensions.
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-beta.388
                    
NuGet\Install-Package CommunityToolkit.Aspire.Hosting.NodeJS.Extensions -Version 9.8.0-beta.388
                    
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.388" />
                    
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.388" />
                    
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.388
                    
#r "nuget: CommunityToolkit.Aspire.Hosting.NodeJS.Extensions, 9.8.0-beta.388"
                    
#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.388
                    
#: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.388&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=CommunityToolkit.Aspire.Hosting.NodeJS.Extensions&version=9.8.0-beta.388&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-beta.389 22 9/18/2025
9.8.0-beta.388 42 9/16/2025
9.8.0-beta.386 46 9/15/2025
9.8.0-beta.385 37 9/15/2025
9.8.0-beta.384 46 9/13/2025
9.8.0-beta.376 149 9/8/2025
9.8.0-beta.375 58 9/6/2025
9.8.0-beta.373 148 9/5/2025
9.8.0-beta.372 134 9/4/2025
9.8.0-beta.370 132 9/2/2025
9.8.0-beta.364 122 9/1/2025
9.7.2 7,396 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 161 8/28/2025
9.7.2-beta.358 161 8/28/2025
9.7.2-beta.357 165 8/28/2025
9.7.1 1,547 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 375 8/14/2025
9.7.1-beta.344 209 8/10/2025
9.7.1-beta.343 211 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 10,527 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 98 7/29/2025
9.6.1-beta.327 99 7/28/2025
9.6.1-beta.326 96 7/28/2025
9.6.0 11,642 7/10/2025
9.6.0-beta.324 125 7/10/2025
9.5.1-beta.323 126 7/10/2025
9.5.1-beta.322 123 7/10/2025
9.5.1-beta.321 125 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 173 6/30/2025
9.5.1-beta.315 374 6/26/2025
9.5.1-beta.314 145 6/23/2025
9.5.1-beta.313 113 6/20/2025
9.5.1-beta.312 118 6/20/2025
9.5.1-beta.311 214 6/18/2025
9.5.1-beta.310 144 6/17/2025
9.5.1-beta.309 128 6/17/2025
9.5.1-beta.308 159 6/17/2025
9.5.1-beta.307 124 6/16/2025
9.5.1-beta.306 399 6/11/2025
9.5.1-beta.305 115 6/7/2025
9.5.1-beta.304 121 6/6/2025
9.5.1-beta.303 138 6/4/2025
9.5.1-beta.302 129 6/4/2025
9.5.1-beta.301 144 6/2/2025
9.5.1-beta.300 147 5/28/2025
9.5.0 20,383 5/27/2025
9.5.0-beta.299 146 5/27/2025
9.5.0-beta.298 151 5/26/2025
9.5.0-beta.297 100 5/24/2025
9.5.0-beta.296 99 5/24/2025
9.5.0-beta.295 55 5/24/2025
9.4.1-beta.291 166 5/19/2025
9.4.1-beta.289 175 5/16/2025
9.4.1-beta.288 218 5/16/2025
9.4.1-beta.287 208 5/16/2025
9.4.1-beta.286 207 5/16/2025
9.4.1-beta.285 268 5/14/2025
9.4.1-beta.284 227 5/13/2025
9.4.1-beta.283 242 5/12/2025
9.4.1-beta.282 165 5/7/2025
9.4.1-beta.280 168 5/2/2025
9.4.1-beta.279 131 5/2/2025
9.4.1-beta.277 377 4/23/2025
9.4.1-beta.276 171 4/23/2025
9.4.1-beta.275 157 4/23/2025
9.4.1-beta.274 153 4/23/2025
9.4.1-beta.273 157 4/23/2025
9.4.1-beta.272 139 4/23/2025
9.4.1-beta.271 151 4/23/2025
9.4.1-beta.270 157 4/20/2025
9.4.0 29,400 4/20/2025
9.4.0-beta.269 151 4/20/2025
9.4.0-beta.268 147 4/20/2025
9.3.1-beta.267 151 4/20/2025
9.3.1-beta.266 80 4/19/2025
9.3.1-beta.265 215 4/15/2025
9.3.1-beta.264 182 4/15/2025
9.3.1-beta.263 190 4/15/2025
9.3.1-beta.262 178 4/15/2025
9.3.1-beta.260 192 4/10/2025
9.3.1-beta.259 168 4/8/2025
9.3.1-beta.258 156 4/8/2025
9.3.1-beta.257 155 4/8/2025
9.3.1-beta.256 158 4/8/2025
9.3.1-beta.255 159 4/8/2025
9.3.1-beta.254 158 4/8/2025
9.3.1-beta.253 156 4/1/2025
9.3.1-beta.252 137 3/27/2025
9.3.1-beta.250 134 3/27/2025
9.3.1-beta.249 132 3/27/2025
9.3.1-beta.248 131 3/27/2025
9.3.1-beta.247 136 3/27/2025
9.3.1-beta.244 487 3/25/2025
9.3.1-beta.242 477 3/24/2025
9.3.1-beta.241 142 3/19/2025
9.3.0 15,477 3/19/2025
9.3.0-beta.239 152 3/19/2025
9.2.2-beta.237 141 3/19/2025
9.2.2-beta.236 108 3/14/2025
9.2.2-beta.230 154 3/13/2025
9.2.2-beta.229 140 3/13/2025
9.2.2-beta.228 175 3/11/2025
9.2.2-beta.227 166 3/11/2025
9.2.2-beta.226 150 3/11/2025
9.2.2-beta.225 157 3/11/2025
9.2.2-beta.224 158 3/11/2025
9.2.2-beta.223 151 3/10/2025
9.2.2-beta.222 158 3/10/2025
9.2.2-beta.220 160 3/9/2025
9.2.2-beta.218 149 3/9/2025
9.2.2-beta.217 198 3/7/2025
9.2.2-beta.216 194 3/7/2025
9.2.2-beta.215 192 3/7/2025
9.2.2-beta.214 197 3/5/2025
9.2.2-beta.213 186 3/5/2025
9.2.2-beta.212 191 3/5/2025
9.2.2-beta.211 192 3/4/2025
9.2.2-beta.210 195 3/4/2025
9.2.2-beta.208 91 3/3/2025
9.2.1 3,952 3/3/2025
9.2.1-beta.207 121 3/2/2025
9.2.1-beta.206 84 3/1/2025
9.2.1-beta.205 91 2/27/2025
9.2.1-beta.204 75 2/26/2025
9.2.1-beta.203 81 2/26/2025
9.2.0 2,195 2/26/2025
9.2.0-beta.202 84 2/26/2025
9.2.0-beta.201 86 2/26/2025
9.2.0-beta.199 94 2/26/2025
9.2.0-beta.198 72 2/26/2025
9.1.1-beta.197 85 2/25/2025
9.1.1-beta.196 97 2/25/2025
9.1.1-beta.195 93 2/25/2025
9.1.1-beta.194 83 2/25/2025
9.1.1-beta.193 88 2/25/2025
9.1.1-beta.192 88 2/24/2025
9.1.1-beta.191 92 2/24/2025
9.1.1-beta.190 85 2/19/2025
9.1.1-beta.189 85 2/19/2025
9.1.1-beta.188 126 2/19/2025
9.1.1-beta.187 111 2/19/2025
9.1.1-beta.183 100 2/18/2025
9.1.1-beta.182 90 2/18/2025
9.1.1-beta.181 99 2/18/2025
9.1.1-beta.180 89 2/17/2025
9.1.1-beta.178 92 2/17/2025
9.1.1-beta.177 88 2/12/2025
9.1.1-beta.176 98 2/11/2025
9.1.1-beta.175 85 2/11/2025
9.1.1-beta.173 104 2/10/2025
9.1.1-beta.169 122 2/6/2025
9.1.1-beta.168 78 2/5/2025
9.1.1-beta.166 98 2/5/2025
9.1.1-beta.165 81 2/5/2025
9.1.1-beta.164 98 2/3/2025
9.1.1-beta.162 88 2/3/2025
9.1.1-beta.155 95 1/30/2025
9.1.1-beta.154 78 1/30/2025
9.1.1-beta.153 94 1/30/2025
9.1.1-beta.152 78 1/29/2025
9.1.1-beta.150 92 1/29/2025
9.1.1-beta.148 99 1/26/2025
9.1.1-beta.147 80 1/26/2025
9.1.1-beta.146 89 1/23/2025
9.1.1-beta.145 84 1/22/2025
9.1.1-beta.144 85 1/22/2025
9.1.1-beta.142 69 1/22/2025
9.1.1-beta.140 89 1/22/2025
9.1.1-beta.139 90 1/21/2025
9.1.1-beta.138 79 1/20/2025
9.1.1-beta.137 81 1/17/2025
9.1.1-beta.136 73 1/15/2025
9.1.1-beta.135 57 1/15/2025
9.1.1-beta.134 55 1/15/2025
9.1.1-beta.128 118 1/9/2025
9.1.1-beta.127 76 1/9/2025
9.1.1-beta.126 75 1/9/2025
9.1.1-beta.125 65 1/9/2025
9.1.1-beta.124 72 1/9/2025
9.1.0 12,310 12/12/2024
9.1.0-beta.123 85 1/3/2025
9.1.0-beta.122 92 1/3/2025
9.1.0-beta.121 92 1/2/2025
9.1.0-beta.120 89 12/30/2024
9.1.0-beta.119 84 12/30/2024
9.1.0-beta.118 87 12/30/2024
9.1.0-beta.116 94 12/30/2024
9.1.0-beta.114 92 12/30/2024
9.1.0-beta.113 88 12/30/2024
9.1.0-beta.112 83 12/18/2024
9.1.0-beta.110 87 12/16/2024
9.1.0-beta.109 81 12/12/2024
9.0.1-beta.108 90 12/12/2024
9.0.1-beta.107 81 12/11/2024
9.0.1-beta.106 88 12/12/2024
9.0.1-beta.104 82 12/11/2024
9.0.1-beta.102 92 12/6/2024
9.0.1-beta.99 91 12/6/2024
9.0.1-beta.98 92 12/6/2024
9.0.1-beta.95 80 12/5/2024
9.0.1-beta.94 86 12/5/2024
9.0.1-beta.93 90 12/2/2024
9.0.1-beta.92 95 11/30/2024
9.0.1-beta.91 92 11/30/2024
9.0.1-beta.90 98 11/29/2024
9.0.1-beta.89 82 11/29/2024
9.0.1-beta.88 79 11/27/2024
9.0.1-beta.87 80 11/27/2024
9.0.1-beta.86 91 11/27/2024
9.0.1-beta.84 86 11/24/2024
9.0.1-beta.83 85 11/22/2024
9.0.1-beta.82 92 11/21/2024
9.0.1-beta.81 81 11/19/2024
9.0.1-beta.80 81 11/19/2024
9.0.1-beta.79 79 11/19/2024
9.0.1-beta.77 757 11/15/2024
9.0.0 6,478 11/15/2024
9.0.0-beta.76 88 11/14/2024
9.0.0-beta.75 84 11/14/2024
9.0.0-beta.74 78 11/14/2024
9.0.0-beta.73 82 11/14/2024
9.0.0-beta.72 83 11/14/2024
9.0.0-beta.71 84 11/13/2024
9.0.0-beta.70 87 11/13/2024
9.0.0-beta.69 93 11/13/2024
9.0.0-beta.68 73 11/13/2024
9.0.0-beta.67 92 11/13/2024
9.0.0-beta.66 88 11/13/2024
9.0.0-beta.63 94 11/12/2024
9.0.0-beta.54 93 10/31/2024
9.0.0-beta.53 81 10/29/2024
8.3.0 435 10/29/2024
8.3.0-beta.51 81 10/29/2024
8.3.0-beta.50 84 10/28/2024
8.3.0-beta.49 86 10/28/2024
8.3.0-beta.48 81 10/28/2024
8.3.0-beta.47 86 10/28/2024
8.3.0-beta.46 100 10/27/2024
8.3.0-beta.45 85 10/25/2024
8.3.0-beta.44 118 10/25/2024
8.3.0-beta.43 85 10/25/2024
8.3.0-beta.42 85 10/24/2024
8.2.1 300 10/23/2024
8.2.1-beta.40 77 10/23/2024
8.2.1-beta.39 84 10/23/2024
8.2.1-beta.38 86 10/23/2024
8.2.1-beta.37 73 10/23/2024
8.2.1-beta.36 85 10/23/2024
8.2.1-beta.35 92 10/23/2024
8.2.0-beta.34 92 10/23/2024
8.2.0-beta.33 81 10/23/2024
8.2.0-beta.32 86 10/22/2024
1.0.0-beta.60 98 11/11/2024
1.0.0-beta.58 90 11/4/2024
1.0.0-beta.57 84 11/1/2024
1.0.0-beta.56 73 11/1/2024
1.0.0-beta.55 77 11/1/2024