The builder object passed to Bun.plugin
Symbol
PluginBuilder
interface PluginBuilder
- config: BuildConfig & { plugins: BunPlugin[] }
The config object passed to
Bun.build
as is. Can be mutated. Create a lazy-loaded virtual module that can be
import
ed orrequire
d from other modules@param specifierThe module specifier to register the callback for
@param callbackThe function to run when the module is imported or required
Example
@returnsthis
for method chainingBun.plugin({ setup(builder) { builder.module("hello:world", () => { return { exports: { foo: "bar" }, loader: "object" }; }); }, }); // sometime later const { foo } = await import("hello:world"); console.log(foo); // "bar" // or const { foo } = require("hello:world"); console.log(foo); // "bar"
- onBeforeParse(constraints: PluginConstraints, callback: { external: unknown; napiModule: unknown; symbol: string }): this
Register a callback to load imports with a specific import specifier
@param constraintsThe constraints to apply the plugin to
@param callbackThe callback to handle the import
@returnsthis
for method chainingBun.plugin({ setup(builder) { builder.onLoad({ filter: /^hello:world$/ }, (args) => { return { exports: { foo: "bar" }, loader: "object" }; }); }, });
Register a callback to resolve imports matching a filter and/or namespace
@param constraintsThe constraints to apply the plugin to
@param callbackThe callback to handle the import
@returnsthis
for method chainingBun.plugin({ setup(builder) { builder.onResolve({ filter: /^wat$/ }, (args) => { return { path: "/tmp/woah.js" }; }); }, });
Register a callback which will be invoked when bundling starts. When using hot module reloading, this is called at the start of each incremental rebuild.
@returnsthis
for method chainingBun.plugin({ setup(builder) { builder.onStart(() => { console.log("bundle just started!!") }); }, });