Skip to content

Plugins ​

Bunup's plugin system allows you to extend its functionality. The plugins option accepts both Bun's native bundler plugins and Bunup-specific plugins.

Plugin Types ​

Bunup supports two types of plugins:

  1. Bun Plugins - Native Bun plugins that are passed directly to Bun's bundler
  2. Bunup Plugins - Custom plugins with additional lifecycle hooks

You can use both types together in the same configuration.

Using Bun Plugins ​

Any Bun plugin can be used with Bunup. These plugins are passed directly to Bun's native bundler:

bunup.config.ts
ts
import { defineConfig } from "bunup";
import type { BunPlugin } from "bun";

const myBunPlugin: BunPlugin = {
	name: "my-plugin",
	setup(build) {
		// Bun plugin setup
	},
};

export default defineConfig({
	entry: "src/index.ts",
	plugins: [myBunPlugin],
});

Using Bunup Plugins ​

Bunup plugins provide additional hooks into the build process:

bunup.config.ts
ts
import { defineConfig, type BunupPlugin } from "bunup";

const myBunupPlugin: BunupPlugin = {
	name: "my-bunup-plugin",
	hooks: {
		onBuildStart(options) {
			// Called before build starts
		},
		onBuildDone(context) {
			// Called after build completes
		},
	},
};

export default defineConfig({
	entry: "src/index.ts",
	plugins: [myBunupPlugin],
});

Built-in Plugins ​

Bunup provides several built-in plugins:

  • Copy - Copy files and directories to your build output
  • Tailwind CSS - Official Tailwind CSS v4 plugin
  • ...and more

Example usage:

bunup.config.ts
ts
import { defineConfig } from "bunup";
import { copy } from "bunup/plugins";

export default defineConfig({
	entry: "src/index.ts",
	plugins: [copy(["README.md", "assets/**/*"])],
});

Plugin Development ​

To learn how to create your own Bunup plugins, see the Plugin Development Guide.

Released under the MIT License.