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

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.364
                    
NuGet\Install-Package CommunityToolkit.Aspire.Hosting.NodeJS.Extensions -Version 9.8.0-beta.364
                    
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.364" />
                    
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.364" />
                    
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.364
                    
#r "nuget: CommunityToolkit.Aspire.Hosting.NodeJS.Extensions, 9.8.0-beta.364"
                    
#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.364
                    
#: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.364&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=CommunityToolkit.Aspire.Hosting.NodeJS.Extensions&version=9.8.0-beta.364&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 29 9/8/2025
9.8.0-beta.375 48 9/6/2025
9.8.0-beta.373 126 9/5/2025
9.8.0-beta.372 126 9/4/2025
9.8.0-beta.370 125 9/2/2025
9.8.0-beta.364 120 9/1/2025
9.7.2 2,415 8/29/2025
9.7.2-beta.362 159 8/29/2025
9.7.2-beta.361 161 8/29/2025
9.7.2-beta.360 164 8/29/2025
9.7.2-beta.359 159 8/28/2025
9.7.2-beta.358 158 8/28/2025
9.7.2-beta.357 163 8/28/2025
9.7.1 1,103 8/27/2025
9.7.1-beta.355 167 8/27/2025
9.7.1-beta.354 160 8/27/2025
9.7.1-beta.353 161 8/27/2025
9.7.1-beta.352 162 8/27/2025
9.7.1-beta.351 162 8/27/2025
9.7.1-beta.348 371 8/14/2025
9.7.1-beta.344 195 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,386 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 9,205 7/10/2025
9.6.0-beta.324 124 7/10/2025
9.5.1-beta.323 124 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 163 7/2/2025
9.5.1-beta.317 165 6/30/2025
9.5.1-beta.315 343 6/26/2025
9.5.1-beta.314 140 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 174 6/18/2025
9.5.1-beta.310 136 6/17/2025
9.5.1-beta.309 126 6/17/2025
9.5.1-beta.308 157 6/17/2025
9.5.1-beta.307 122 6/16/2025
9.5.1-beta.306 374 6/11/2025
9.5.1-beta.305 112 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 140 6/2/2025
9.5.1-beta.300 144 5/28/2025
9.5.0 18,374 5/27/2025
9.5.0-beta.299 144 5/27/2025
9.5.0-beta.298 148 5/26/2025
9.5.0-beta.297 96 5/24/2025
9.5.0-beta.296 95 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 169 5/16/2025
9.4.1-beta.288 213 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 223 5/13/2025
9.4.1-beta.283 238 5/12/2025
9.4.1-beta.282 162 5/7/2025
9.4.1-beta.280 165 5/2/2025
9.4.1-beta.279 129 5/2/2025
9.4.1-beta.277 367 4/23/2025
9.4.1-beta.276 168 4/23/2025
9.4.1-beta.275 152 4/23/2025
9.4.1-beta.274 152 4/23/2025
9.4.1-beta.273 153 4/23/2025
9.4.1-beta.272 138 4/23/2025
9.4.1-beta.271 147 4/23/2025
9.4.1-beta.270 153 4/20/2025
9.4.0 27,510 4/20/2025
9.4.0-beta.269 148 4/20/2025
9.4.0-beta.268 144 4/20/2025
9.3.1-beta.267 148 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 176 4/15/2025
9.3.1-beta.263 187 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 165 4/8/2025
9.3.1-beta.258 151 4/8/2025
9.3.1-beta.257 153 4/8/2025
9.3.1-beta.256 156 4/8/2025
9.3.1-beta.255 157 4/8/2025
9.3.1-beta.254 153 4/8/2025
9.3.1-beta.253 153 4/1/2025
9.3.1-beta.252 133 3/27/2025
9.3.1-beta.250 132 3/27/2025
9.3.1-beta.249 125 3/27/2025
9.3.1-beta.248 129 3/27/2025
9.3.1-beta.247 133 3/27/2025
9.3.1-beta.244 484 3/25/2025
9.3.1-beta.242 473 3/24/2025
9.3.1-beta.241 141 3/19/2025
9.3.0 13,609 3/19/2025
9.3.0-beta.239 148 3/19/2025
9.2.2-beta.237 140 3/19/2025
9.2.2-beta.236 107 3/14/2025
9.2.2-beta.230 149 3/13/2025
9.2.2-beta.229 137 3/13/2025
9.2.2-beta.228 169 3/11/2025
9.2.2-beta.227 161 3/11/2025
9.2.2-beta.226 149 3/11/2025
9.2.2-beta.225 154 3/11/2025
9.2.2-beta.224 154 3/11/2025
9.2.2-beta.223 148 3/10/2025
9.2.2-beta.222 156 3/10/2025
9.2.2-beta.220 157 3/9/2025
9.2.2-beta.218 143 3/9/2025
9.2.2-beta.217 195 3/7/2025
9.2.2-beta.216 190 3/7/2025
9.2.2-beta.215 192 3/7/2025
9.2.2-beta.214 196 3/5/2025
9.2.2-beta.213 186 3/5/2025
9.2.2-beta.212 187 3/5/2025
9.2.2-beta.211 188 3/4/2025
9.2.2-beta.210 192 3/4/2025
9.2.2-beta.208 87 3/3/2025
9.2.1 3,916 3/3/2025
9.2.1-beta.207 118 3/2/2025
9.2.1-beta.206 83 3/1/2025
9.2.1-beta.205 89 2/27/2025
9.2.1-beta.204 74 2/26/2025
9.2.1-beta.203 78 2/26/2025
9.2.0 2,189 2/26/2025
9.2.0-beta.202 80 2/26/2025
9.2.0-beta.201 83 2/26/2025
9.2.0-beta.199 93 2/26/2025
9.2.0-beta.198 72 2/26/2025
9.1.1-beta.197 82 2/25/2025
9.1.1-beta.196 92 2/25/2025
9.1.1-beta.195 91 2/25/2025
9.1.1-beta.194 82 2/25/2025
9.1.1-beta.193 85 2/25/2025
9.1.1-beta.192 86 2/24/2025
9.1.1-beta.191 88 2/24/2025
9.1.1-beta.190 83 2/19/2025
9.1.1-beta.189 81 2/19/2025
9.1.1-beta.188 92 2/19/2025
9.1.1-beta.187 104 2/19/2025
9.1.1-beta.183 96 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 87 2/17/2025
9.1.1-beta.178 91 2/17/2025
9.1.1-beta.177 87 2/12/2025
9.1.1-beta.176 94 2/11/2025
9.1.1-beta.175 81 2/11/2025
9.1.1-beta.173 100 2/10/2025
9.1.1-beta.169 117 2/6/2025
9.1.1-beta.168 77 2/5/2025
9.1.1-beta.166 96 2/5/2025
9.1.1-beta.165 81 2/5/2025
9.1.1-beta.164 94 2/3/2025
9.1.1-beta.162 86 2/3/2025
9.1.1-beta.155 91 1/30/2025
9.1.1-beta.154 78 1/30/2025
9.1.1-beta.153 90 1/30/2025
9.1.1-beta.152 77 1/29/2025
9.1.1-beta.150 90 1/29/2025
9.1.1-beta.148 99 1/26/2025
9.1.1-beta.147 78 1/26/2025
9.1.1-beta.146 88 1/23/2025
9.1.1-beta.145 82 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 87 1/22/2025
9.1.1-beta.139 86 1/21/2025
9.1.1-beta.138 78 1/20/2025
9.1.1-beta.137 76 1/17/2025
9.1.1-beta.136 67 1/15/2025
9.1.1-beta.135 53 1/15/2025
9.1.1-beta.134 54 1/15/2025
9.1.1-beta.128 116 1/9/2025
9.1.1-beta.127 68 1/9/2025
9.1.1-beta.126 74 1/9/2025
9.1.1-beta.125 65 1/9/2025
9.1.1-beta.124 70 1/9/2025
9.1.0 11,981 12/12/2024
9.1.0-beta.123 85 1/3/2025
9.1.0-beta.122 89 1/3/2025
9.1.0-beta.121 91 1/2/2025
9.1.0-beta.120 85 12/30/2024
9.1.0-beta.119 83 12/30/2024
9.1.0-beta.118 86 12/30/2024
9.1.0-beta.116 92 12/30/2024
9.1.0-beta.114 88 12/30/2024
9.1.0-beta.113 83 12/30/2024
9.1.0-beta.112 80 12/18/2024
9.1.0-beta.110 86 12/16/2024
9.1.0-beta.109 81 12/12/2024
9.0.1-beta.108 86 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 80 12/11/2024
9.0.1-beta.102 90 12/6/2024
9.0.1-beta.99 85 12/6/2024
9.0.1-beta.98 88 12/6/2024
9.0.1-beta.95 77 12/5/2024
9.0.1-beta.94 84 12/5/2024
9.0.1-beta.93 84 12/2/2024
9.0.1-beta.92 93 11/30/2024
9.0.1-beta.91 89 11/30/2024
9.0.1-beta.90 96 11/29/2024
9.0.1-beta.89 78 11/29/2024
9.0.1-beta.88 77 11/27/2024
9.0.1-beta.87 79 11/27/2024
9.0.1-beta.86 83 11/27/2024
9.0.1-beta.84 86 11/24/2024
9.0.1-beta.83 83 11/22/2024
9.0.1-beta.82 84 11/21/2024
9.0.1-beta.81 79 11/19/2024
9.0.1-beta.80 78 11/19/2024
9.0.1-beta.79 77 11/19/2024
9.0.1-beta.77 747 11/15/2024
9.0.0 6,189 11/15/2024
9.0.0-beta.76 87 11/14/2024
9.0.0-beta.75 80 11/14/2024
9.0.0-beta.74 77 11/14/2024
9.0.0-beta.73 80 11/14/2024
9.0.0-beta.72 80 11/14/2024
9.0.0-beta.71 81 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 88 11/13/2024
9.0.0-beta.66 85 11/13/2024
9.0.0-beta.63 91 11/12/2024
9.0.0-beta.54 89 10/31/2024
9.0.0-beta.53 79 10/29/2024
8.3.0 426 10/29/2024
8.3.0-beta.51 80 10/29/2024
8.3.0-beta.50 84 10/28/2024
8.3.0-beta.49 84 10/28/2024
8.3.0-beta.48 80 10/28/2024
8.3.0-beta.47 84 10/28/2024
8.3.0-beta.46 98 10/27/2024
8.3.0-beta.45 81 10/25/2024
8.3.0-beta.44 114 10/25/2024
8.3.0-beta.43 82 10/25/2024
8.3.0-beta.42 84 10/24/2024
8.2.1 281 10/23/2024
8.2.1-beta.40 74 10/23/2024
8.2.1-beta.39 81 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 84 10/23/2024
8.2.1-beta.35 89 10/23/2024
8.2.0-beta.34 88 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 93 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 72 11/1/2024
1.0.0-beta.55 77 11/1/2024