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

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.372
                    
NuGet\Install-Package CommunityToolkit.Aspire.Hosting.NodeJS.Extensions -Version 9.8.0-beta.372
                    
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.372" />
                    
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.372" />
                    
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.372
                    
#r "nuget: CommunityToolkit.Aspire.Hosting.NodeJS.Extensions, 9.8.0-beta.372"
                    
#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.372
                    
#: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.372&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=CommunityToolkit.Aspire.Hosting.NodeJS.Extensions&version=9.8.0-beta.372&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.376 95 9/8/2025
9.8.0-beta.375 57 9/6/2025
9.8.0-beta.373 144 9/5/2025
9.8.0-beta.372 133 9/4/2025
9.8.0-beta.370 130 9/2/2025
9.8.0-beta.364 120 9/1/2025
9.7.2 4,309 8/29/2025
9.7.2-beta.362 161 8/29/2025
9.7.2-beta.361 162 8/29/2025
9.7.2-beta.360 165 8/29/2025
9.7.2-beta.359 160 8/28/2025
9.7.2-beta.358 159 8/28/2025
9.7.2-beta.357 164 8/28/2025
9.7.1 1,310 8/27/2025
9.7.1-beta.355 168 8/27/2025
9.7.1-beta.354 161 8/27/2025
9.7.1-beta.353 162 8/27/2025
9.7.1-beta.352 163 8/27/2025
9.7.1-beta.351 163 8/27/2025
9.7.1-beta.348 372 8/14/2025
9.7.1-beta.344 206 8/10/2025
9.7.1-beta.343 210 8/8/2025
9.7.1-beta.342 208 8/7/2025
9.7.1-beta.341 198 8/6/2025
9.7.1-beta.340 197 8/5/2025
9.7.1-beta.339 182 8/5/2025
9.7.0 9,901 8/1/2025
9.7.0-beta.337 82 8/1/2025
9.7.0-beta.336 97 8/1/2025
9.7.0-beta.335 86 8/1/2025
9.7.0-beta.333 101 7/30/2025
9.6.1-beta.332 95 7/30/2025
9.6.1-beta.331 94 7/30/2025
9.6.1-beta.330 98 7/30/2025
9.6.1-beta.329 96 7/30/2025
9.6.1-beta.328 96 7/29/2025
9.6.1-beta.327 98 7/28/2025
9.6.1-beta.326 95 7/28/2025
9.6.0 10,753 7/10/2025
9.6.0-beta.324 124 7/10/2025
9.5.1-beta.323 125 7/10/2025
9.5.1-beta.322 122 7/10/2025
9.5.1-beta.321 124 7/10/2025
9.5.1-beta.320 130 7/9/2025
9.5.1-beta.319 128 7/8/2025
9.5.1-beta.318 164 7/2/2025
9.5.1-beta.317 170 6/30/2025
9.5.1-beta.315 359 6/26/2025
9.5.1-beta.314 142 6/23/2025
9.5.1-beta.313 112 6/20/2025
9.5.1-beta.312 117 6/20/2025
9.5.1-beta.311 184 6/18/2025
9.5.1-beta.310 138 6/17/2025
9.5.1-beta.309 126 6/17/2025
9.5.1-beta.308 158 6/17/2025
9.5.1-beta.307 123 6/16/2025
9.5.1-beta.306 392 6/11/2025
9.5.1-beta.305 114 6/7/2025
9.5.1-beta.304 120 6/6/2025
9.5.1-beta.303 135 6/4/2025
9.5.1-beta.302 128 6/4/2025
9.5.1-beta.301 142 6/2/2025
9.5.1-beta.300 146 5/28/2025
9.5.0 19,354 5/27/2025
9.5.0-beta.299 144 5/27/2025
9.5.0-beta.298 149 5/26/2025
9.5.0-beta.297 98 5/24/2025
9.5.0-beta.296 96 5/24/2025
9.5.0-beta.295 53 5/24/2025
9.4.1-beta.291 165 5/19/2025
9.4.1-beta.289 172 5/16/2025
9.4.1-beta.288 216 5/16/2025
9.4.1-beta.287 205 5/16/2025
9.4.1-beta.286 204 5/16/2025
9.4.1-beta.285 266 5/14/2025
9.4.1-beta.284 225 5/13/2025
9.4.1-beta.283 241 5/12/2025
9.4.1-beta.282 163 5/7/2025
9.4.1-beta.280 166 5/2/2025
9.4.1-beta.279 129 5/2/2025
9.4.1-beta.277 370 4/23/2025
9.4.1-beta.276 169 4/23/2025
9.4.1-beta.275 156 4/23/2025
9.4.1-beta.274 152 4/23/2025
9.4.1-beta.273 155 4/23/2025
9.4.1-beta.272 138 4/23/2025
9.4.1-beta.271 150 4/23/2025
9.4.1-beta.270 156 4/20/2025
9.4.0 28,518 4/20/2025
9.4.0-beta.269 149 4/20/2025
9.4.0-beta.268 146 4/20/2025
9.3.1-beta.267 149 4/20/2025
9.3.1-beta.266 79 4/19/2025
9.3.1-beta.265 214 4/15/2025
9.3.1-beta.264 179 4/15/2025
9.3.1-beta.263 189 4/15/2025
9.3.1-beta.262 177 4/15/2025
9.3.1-beta.260 191 4/10/2025
9.3.1-beta.259 166 4/8/2025
9.3.1-beta.258 154 4/8/2025
9.3.1-beta.257 154 4/8/2025
9.3.1-beta.256 157 4/8/2025
9.3.1-beta.255 158 4/8/2025
9.3.1-beta.254 155 4/8/2025
9.3.1-beta.253 155 4/1/2025
9.3.1-beta.252 134 3/27/2025
9.3.1-beta.250 132 3/27/2025
9.3.1-beta.249 129 3/27/2025
9.3.1-beta.248 129 3/27/2025
9.3.1-beta.247 134 3/27/2025
9.3.1-beta.244 487 3/25/2025
9.3.1-beta.242 476 3/24/2025
9.3.1-beta.241 142 3/19/2025
9.3.0 14,300 3/19/2025
9.3.0-beta.239 150 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 151 3/13/2025
9.2.2-beta.229 140 3/13/2025
9.2.2-beta.228 174 3/11/2025
9.2.2-beta.227 164 3/11/2025
9.2.2-beta.226 150 3/11/2025
9.2.2-beta.225 156 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 159 3/9/2025
9.2.2-beta.218 146 3/9/2025
9.2.2-beta.217 195 3/7/2025
9.2.2-beta.216 192 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 188 3/5/2025
9.2.2-beta.211 189 3/4/2025
9.2.2-beta.210 195 3/4/2025
9.2.2-beta.208 89 3/3/2025
9.2.1 3,936 3/3/2025
9.2.1-beta.207 120 3/2/2025
9.2.1-beta.206 84 3/1/2025
9.2.1-beta.205 90 2/27/2025
9.2.1-beta.204 75 2/26/2025
9.2.1-beta.203 80 2/26/2025
9.2.0 2,191 2/26/2025
9.2.0-beta.202 81 2/26/2025
9.2.0-beta.201 84 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 84 2/25/2025
9.1.1-beta.196 95 2/25/2025
9.1.1-beta.195 92 2/25/2025
9.1.1-beta.194 83 2/25/2025
9.1.1-beta.193 87 2/25/2025
9.1.1-beta.192 87 2/24/2025
9.1.1-beta.191 90 2/24/2025
9.1.1-beta.190 85 2/19/2025
9.1.1-beta.189 81 2/19/2025
9.1.1-beta.188 95 2/19/2025
9.1.1-beta.187 108 2/19/2025
9.1.1-beta.183 99 2/18/2025
9.1.1-beta.182 89 2/18/2025
9.1.1-beta.181 98 2/18/2025
9.1.1-beta.180 88 2/17/2025
9.1.1-beta.178 91 2/17/2025
9.1.1-beta.177 88 2/12/2025
9.1.1-beta.176 96 2/11/2025
9.1.1-beta.175 85 2/11/2025
9.1.1-beta.173 103 2/10/2025
9.1.1-beta.169 118 2/6/2025
9.1.1-beta.168 77 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 97 2/3/2025
9.1.1-beta.162 88 2/3/2025
9.1.1-beta.155 94 1/30/2025
9.1.1-beta.154 78 1/30/2025
9.1.1-beta.153 92 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 83 1/22/2025
9.1.1-beta.142 69 1/22/2025
9.1.1-beta.140 88 1/22/2025
9.1.1-beta.139 87 1/21/2025
9.1.1-beta.138 78 1/20/2025
9.1.1-beta.137 79 1/17/2025
9.1.1-beta.136 70 1/15/2025
9.1.1-beta.135 54 1/15/2025
9.1.1-beta.134 54 1/15/2025
9.1.1-beta.128 117 1/9/2025
9.1.1-beta.127 73 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,160 12/12/2024
9.1.0-beta.123 85 1/3/2025
9.1.0-beta.122 91 1/3/2025
9.1.0-beta.121 91 1/2/2025
9.1.0-beta.120 86 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 92 12/30/2024
9.1.0-beta.114 91 12/30/2024
9.1.0-beta.113 86 12/30/2024
9.1.0-beta.112 81 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 88 12/12/2024
9.0.1-beta.107 80 12/11/2024
9.0.1-beta.106 88 12/12/2024
9.0.1-beta.104 81 12/11/2024
9.0.1-beta.102 92 12/6/2024
9.0.1-beta.99 90 12/6/2024
9.0.1-beta.98 89 12/6/2024
9.0.1-beta.95 78 12/5/2024
9.0.1-beta.94 85 12/5/2024
9.0.1-beta.93 88 12/2/2024
9.0.1-beta.92 95 11/30/2024
9.0.1-beta.91 90 11/30/2024
9.0.1-beta.90 97 11/29/2024
9.0.1-beta.89 79 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 87 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 79 11/19/2024
9.0.1-beta.79 78 11/19/2024
9.0.1-beta.77 752 11/15/2024
9.0.0 6,362 11/15/2024
9.0.0-beta.76 88 11/14/2024
9.0.0-beta.75 83 11/14/2024
9.0.0-beta.74 78 11/14/2024
9.0.0-beta.73 80 11/14/2024
9.0.0-beta.72 81 11/14/2024
9.0.0-beta.71 82 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 90 11/13/2024
9.0.0-beta.66 88 11/13/2024
9.0.0-beta.63 93 11/12/2024
9.0.0-beta.54 91 10/31/2024
9.0.0-beta.53 80 10/29/2024
8.3.0 434 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 80 10/28/2024
8.3.0-beta.47 85 10/28/2024
8.3.0-beta.46 99 10/27/2024
8.3.0-beta.45 82 10/25/2024
8.3.0-beta.44 117 10/25/2024
8.3.0-beta.43 82 10/25/2024
8.3.0-beta.42 85 10/24/2024
8.2.1 287 10/23/2024
8.2.1-beta.40 76 10/23/2024
8.2.1-beta.39 83 10/23/2024
8.2.1-beta.38 85 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 90 10/23/2024
8.2.0-beta.34 91 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 94 11/11/2024
1.0.0-beta.58 89 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