# JavaScriptHostingExtensions

- Kind: `class`
- Package: [Aspire.Hosting.JavaScript](/reference/api/csharp/aspire.hosting.javascript.md)
- Version: `13.4.0`
- Namespace: `Aspire.Hosting`
- Target framework: `net8.0`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/cbc352350f1a9bafbaff10d14a2c8de4ac186a48/src/Aspire.Hosting.JavaScript/JavaScriptHostingExtensions.cs)

Provides extension methods for adding JavaScript applications to an `Hosting.IDistributedApplicationBuilder`.

## Definition

```csharp
namespace Aspire.Hosting;

public static class JavaScriptHostingExtensions
{
    // ...
}
```

## Methods

- [AddBunApp(IDistributedApplicationBuilder, string, string, string)](/reference/api/csharp/aspire.hosting.javascript/javascripthostingextensions/methods.md#addbunapp-idistributedapplicationbuilder-string-string-string) : `IResourceBuilder<BunAppResource>` `extension` `ats export` -- Adds a Bun application to the application model. Bun should be available on the PATH.
- [AddJavaScriptApp(IDistributedApplicationBuilder, string, string, string)](/reference/api/csharp/aspire.hosting.javascript/javascripthostingextensions/methods.md#addjavascriptapp-idistributedapplicationbuilder-string-string-string) : `IResourceBuilder<JavaScriptAppResource>` `extension` `ats export` -- Adds a JavaScript application resource to the distributed application using the specified app directory and run script.
- [AddNextJsApp(IDistributedApplicationBuilder, string, string, string)](/reference/api/csharp/aspire.hosting.javascript/javascripthostingextensions/methods.md#addnextjsapp-idistributedapplicationbuilder-string-string-string) : `IResourceBuilder<NextJsAppResource>` `extension` `experimental` `ats export` -- Adds a Next.js app to the distributed application builder.
- [AddNodeApp(IDistributedApplicationBuilder, string, string, string)](/reference/api/csharp/aspire.hosting.javascript/javascripthostingextensions/methods.md#addnodeapp-idistributedapplicationbuilder-string-string-string) : `IResourceBuilder<NodeAppResource>` `extension` `ats export` -- Adds a node application to the application model. Node should be available on the PATH.
- [AddViteApp(IDistributedApplicationBuilder, string, string, string)](/reference/api/csharp/aspire.hosting.javascript/javascripthostingextensions/methods.md#addviteapp-idistributedapplicationbuilder-string-string-string) : `IResourceBuilder<ViteAppResource>` `extension` `ats export` -- Adds a Vite app to the distributed application builder.
- [DisableBuildValidation(IResourceBuilder<NextJsAppResource>)](/reference/api/csharp/aspire.hosting.javascript/javascripthostingextensions/methods.md#disablebuildvalidation-iresourcebuilder-nextjsappresource) : `IResourceBuilder<NextJsAppResource>` `extension` `experimental` `ats export` -- Disables deploy-time build validation checks for the Next.js application.
- [PublishAsNodeServer(IResourceBuilder<TResource>, string, string)](/reference/api/csharp/aspire.hosting.javascript/javascripthostingextensions/methods.md#publishasnodeserver-iresourcebuilder-tresource-string-string) : `IResourceBuilder<TResource>` `extension` `experimental` `ats export` -- Configures the JavaScript application to publish as a standalone Node.js server that runs a built artifact directly.
- [PublishAsPackageScript(IResourceBuilder<TResource>, string, string?)](/reference/api/csharp/aspire.hosting.javascript/javascripthostingextensions/methods.md#publishaspackagescript-iresourcebuilder-tresource-string-string) : `IResourceBuilder<TResource>` `extension` `experimental` `ats export` -- Configures the JavaScript application to publish as a Node.js server that uses a `package.json` script at runtime.
- [PublishAsStaticWebsite(IResourceBuilder<TResource>, Action<PublishAsStaticWebsiteOptions>)](/reference/api/csharp/aspire.hosting.javascript/javascripthostingextensions/methods.md#publishasstaticwebsite-iresourcebuilder-tresource-action-publishasstaticwebsiteoptions) : `IResourceBuilder<TResource>` `extension` `experimental` `ats ignored` -- Configures the JavaScript application to publish as a standalone static website served by YARP.
- [PublishAsStaticWebsite(IResourceBuilder<TResource>, string, IResourceBuilder<IResourceWithServiceDiscovery>, Action<PublishAsStaticWebsiteOptions>)](/reference/api/csharp/aspire.hosting.javascript/javascripthostingextensions/methods.md#publishasstaticwebsite-iresourcebuilder-tresource-string-iresourcebuilder-iresourcewithservicediscovery-action-publishasstaticwebsiteoptions) : `IResourceBuilder<TResource>` `extension` `experimental` `ats ignored` -- Configures the JavaScript application to publish as a standalone static website served by YARP, with an API reverse-proxy to the specified resource.
- [WithBrowserDebugger(IResourceBuilder<T>, string)](/reference/api/csharp/aspire.hosting.javascript/javascripthostingextensions/methods.md#withbrowserdebugger-iresourcebuilder-t-string) : `IResourceBuilder<T>` `extension` `experimental` `ats export` -- Configures a browser debugger for the JavaScript application resource, enabling browser-based debugging through a child resource that launches when the parent application is ready.
- [WithBuildScript(IResourceBuilder<TResource>, string, string[]?)](/reference/api/csharp/aspire.hosting.javascript/javascripthostingextensions/methods.md#withbuildscript-iresourcebuilder-tresource-string-string) : `IResourceBuilder<TResource>` `extension` `ats export` -- Adds a build script annotation to the resource builder using the specified command-line arguments.
- [WithBun(IResourceBuilder<TResource>, bool, string[]?)](/reference/api/csharp/aspire.hosting.javascript/javascripthostingextensions/methods.md#withbun-iresourcebuilder-tresource-bool-string) : `IResourceBuilder<TResource>` `extension` `ats export` -- Configures the JavaScript resource to use Bun as the package manager and optionally installs packages before the application starts.
- [WithNpm(IResourceBuilder<TResource>, bool, string?, string[]?)](/reference/api/csharp/aspire.hosting.javascript/javascripthostingextensions/methods.md#withnpm-iresourcebuilder-tresource-bool-string-string) : `IResourceBuilder<TResource>` `extension` `ats export` -- Configures the Node.js resource to use npm as the package manager and optionally installs packages before the application starts.
- [WithPnpm(IResourceBuilder<TResource>, bool, string[]?)](/reference/api/csharp/aspire.hosting.javascript/javascripthostingextensions/methods.md#withpnpm-iresourcebuilder-tresource-bool-string) : `IResourceBuilder<TResource>` `extension` `ats export` -- Configures the Node.js resource to use pnpm as the package manager and optionally installs packages before the application starts.
- [WithRunScript(IResourceBuilder<TResource>, string, string[]?)](/reference/api/csharp/aspire.hosting.javascript/javascripthostingextensions/methods.md#withrunscript-iresourcebuilder-tresource-string-string) : `IResourceBuilder<TResource>` `extension` `ats export` -- Adds a run script annotation to the specified JavaScript application resource builder, specifying the script to execute and its arguments during run mode.
- [WithViteConfig(IResourceBuilder<ViteAppResource>, string)](/reference/api/csharp/aspire.hosting.javascript/javascripthostingextensions/methods.md#withviteconfig-iresourcebuilder-viteappresource-string) : `IResourceBuilder<ViteAppResource>` `extension` `ats export` -- Configures the Vite app to use the specified Vite configuration file instead of the default resolution behavior.
- [WithYarn(IResourceBuilder<TResource>, bool, string[]?)](/reference/api/csharp/aspire.hosting.javascript/javascripthostingextensions/methods.md#withyarn-iresourcebuilder-tresource-bool-string) : `IResourceBuilder<TResource>` `extension` `ats export` -- Configures the Node.js resource to use yarn as the package manager and optionally installs packages before the application starts.
