跳到正文

Interface: FunctionPluginHooks

Defined in: node_modules/.pnpm/rolldown@1.0.0-rc.1/node_modules/rolldown/dist/shared/define-config-DO4TBkJV.d.mts:2439

Build Hooks

buildEnd()

ts
buildEnd: (this, err?) => void;

Defined in: node_modules/.pnpm/rolldown@1.0.0-rc.1/node_modules/rolldown/dist/shared/define-config-DO4TBkJV.d.mts:2563

Called when Rolldown has finished bundling, but before Output Generation Hooks. If an error occurred during the build, it is passed on to this hook.

Parameters

this

PluginContext

err?

Error

Returns

void


buildStart()

ts
buildStart: (this, options) => void;

Defined in: node_modules/.pnpm/rolldown@1.0.0-rc.1/node_modules/rolldown/dist/shared/define-config-DO4TBkJV.d.mts:2492

Called on each rolldown() build.

This is the recommended hook to use when you need access to the options passed to rolldown() as it takes the transformations by all options hooks into account and also contains the right default values for unset options.

Parameters

this

PluginContext

options

NormalizedInputOptions

Returns

void


closeWatcher()

ts
closeWatcher: (this) => void;

Defined in: node_modules/.pnpm/rolldown@1.0.0-rc.1/node_modules/rolldown/dist/shared/define-config-DO4TBkJV.d.mts:2677

Notifies a plugin when the watcher process will close so that all open resources can be closed too.

This hook cannot be used by output plugins.

Parameters

this

PluginContext

Returns

void


load()

ts
load: (this, id) => MaybePromise<
  | undefined
  | null
  | string
  | void
| SourceDescription>;

Defined in: node_modules/.pnpm/rolldown@1.0.0-rc.1/node_modules/rolldown/dist/shared/define-config-DO4TBkJV.d.mts:2529

Defines a custom loader.

Returning null defers to other load hooks or the built-in loading mechanism.

You can use this.getModuleInfo() to find out the previous values of meta, moduleSideEffects inside this hook.

Parameters

this

PluginContext

id

string

Returns

MaybePromise< | undefined | null | string | void | SourceDescription>


moduleParsed()

ts
moduleParsed: (this, moduleInfo) => void;

Defined in: node_modules/.pnpm/rolldown@1.0.0-rc.1/node_modules/rolldown/dist/shared/define-config-DO4TBkJV.d.mts:2556

This hook is called each time a module has been fully parsed by Rolldown.

This hook will wait until all imports are resolved so that the information in moduleInfo.importedIds, moduleInfo.dynamicallyImportedIds are complete and accurate. Note however that information about importing modules may be incomplete as additional importers could be discovered later. If you need this information, use the buildEnd hook.

Parameters

this

PluginContext

moduleInfo

ModuleInfo

Returns

void


onLog()

ts
onLog: (this, level, log) => boolean | undefined | null | void;

Defined in: node_modules/.pnpm/rolldown@1.0.0-rc.1/node_modules/rolldown/dist/shared/define-config-DO4TBkJV.d.mts:2458

A function that receives and filters logs and warnings generated by Rolldown and plugins before they are passed to the onLog option or printed to the console.

If false is returned, the log will be filtered out. Otherwise, the log will be handed to the onLog hook of the next plugin, the onLog option, or printed to the console. Plugins can also change the log level of a log or turn a log into an error by passing the log object to this.error, this.warn, this.info or this.debug and returning false.

./docs/plugin-hooks-onlog.md

Parameters

this

MinimalPluginContext

level

"warn" | "info" | "debug"

log

RolldownLog

Returns

boolean | undefined | null | void


options()

ts
options: (this, options) =>
  | InputOptions
  | undefined | null | void;

Defined in: node_modules/.pnpm/rolldown@1.0.0-rc.1/node_modules/rolldown/dist/shared/define-config-DO4TBkJV.d.mts:2470

Replaces or manipulates the options object passed to rolldown().

Returning null does not replace anything.

If you just need to read the options, it is recommended to use the buildStart hook as that hook has access to the options after the transformations from all options hooks have been taken into account.

Parameters

this

MinimalPluginContext

options

InputOptions

Returns

| InputOptions | undefined | null | void


outputOptions()

ts
outputOptions: (this, options) =>
  | OutputOptions
  | undefined | null | void;

Defined in: node_modules/.pnpm/rolldown@1.0.0-rc.1/node_modules/rolldown/dist/shared/define-config-DO4TBkJV.d.mts:2484

Replaces or manipulates the output options object passed to bundle.generate() or bundle.write().

Returning null does not replace anything.

If you just need to read the output options, it is recommended to use the renderStart hook as this hook has access to the output options after the transformations from all outputOptions hooks have been taken into account.

Parameters

this

MinimalPluginContext

options

OutputOptions

Returns

| OutputOptions | undefined | null | void


resolveDynamicImport()

ts
resolveDynamicImport: (this, source, importer) =>
  | undefined
  | null
  | string
  | false
  | void
  | PartialResolvedId;

Defined in: node_modules/.pnpm/rolldown@1.0.0-rc.1/node_modules/rolldown/dist/shared/define-config-DO4TBkJV.d.mts:2519

Defines a custom resolver for dynamic imports.

Parameters

this

PluginContext

source

string

importer

string | undefined

Returns

| undefined | null | string | false | void | PartialResolvedId

Deprecated

This hook exists only for Rollup compatibility. Please use resolveId instead.


resolveId()

ts
resolveId: (this, source, importer, extraOptions) =>
  | undefined
  | null
  | string
  | false
  | void
  | PartialResolvedId;

Defined in: node_modules/.pnpm/rolldown@1.0.0-rc.1/node_modules/rolldown/dist/shared/define-config-DO4TBkJV.d.mts:2510

Defines a custom resolver.

A resolver can be useful for e.g. locating third-party dependencies.

Returning null defers to other resolveId hooks and eventually the default resolution behavior. Returning false signals that source should be treated as an external module and not included in the bundle. If this happens for a relative import, the id will be renormalized the same way as when the InputOptions.external option is used. If you return an object, then it is possible to resolve an import to a different id while excluding it from the bundle at the same time.

Note that while resolveId will be called for each import of a module and can therefore resolve to the same id many times, values for external, meta or moduleSideEffects can only be set once before the module is loaded. The reason is that after this call, Rolldown will continue with the load and transform hooks for that module that may override these values and should take precedence if they do so.

Parameters

this

PluginContext

source

string

importer

string | undefined

extraOptions
custom?

CustomPluginOptions

isEntry

boolean

Whether this is resolution for an entry point.

./docs/plugin-hooks-resolveid-isentry.md

kind

| "import-statement" | "dynamic-import" | "require-call" | "import-rule" | "url-token" | "new-url" | "hot-accept"

Returns

| undefined | null | string | false | void | PartialResolvedId


transform()

ts
transform: (this, code, id, meta) =>
  | undefined
  | null
  | string
  | void
  | Omit<SourceDescription, "code"> & object;

Defined in: node_modules/.pnpm/rolldown@1.0.0-rc.1/node_modules/rolldown/dist/shared/define-config-DO4TBkJV.d.mts:2539

Can be used to transform individual modules.

Note that it's possible to return only properties and no code transformations.

You can use this.getModuleInfo() to find out the previous values of meta, moduleSideEffects inside this hook.

Parameters

this

TransformPluginContext

code

string

id

string

meta

BindingTransformHookExtraArgs & object

Returns

| undefined | null | string | void | Omit<SourceDescription, "code"> & object


watchChange()

ts
watchChange: (this, id, event) => void;

Defined in: node_modules/.pnpm/rolldown@1.0.0-rc.1/node_modules/rolldown/dist/shared/define-config-DO4TBkJV.d.mts:2667

Notifies a plugin whenever Rolldown has detected a change to a monitored file in watch mode.

If a build is currently running, this hook is called once the build finished. It will be called once for every file that changed.

This hook cannot be used by output plugins.

If you need to be notified immediately when a file changed, you can use the watch.onInvalidate option.

Parameters

this

PluginContext

id

string

event
event

ChangeEvent

Returns

void

Output Generation Hooks

augmentChunkHash()

ts
augmentChunkHash: (this, chunk) => string | void;

Defined in: node_modules/.pnpm/rolldown@1.0.0-rc.1/node_modules/rolldown/dist/shared/define-config-DO4TBkJV.d.mts:2608

Can be used to augment the hash of individual chunks. Called for each Rolldown output chunk.

Returning a falsy value will not modify the hash. Truthy values will be used as an additional source for hash calculation.

./docs/plugin-hooks-augmentchunkhash.md

Parameters

this

PluginContext

chunk

RenderedChunk

Returns

string | void


closeBundle()

ts
closeBundle: (this, error?) => void;

Defined in: node_modules/.pnpm/rolldown@1.0.0-rc.1/node_modules/rolldown/dist/shared/define-config-DO4TBkJV.d.mts:2654

Can be used to clean up any external service that may be running.

Rolldown's CLI will make sure this hook is called after each run, but it is the responsibility of users of the JavaScript API to manually call bundle.close() once they are done generating bundles. For that reason, any plugin relying on this feature should carefully mention this in its documentation.

If a plugin wants to retain resources across builds in watch mode, they can check for this.meta.watchMode in this hook and perform the necessary cleanup for watch mode in closeWatcher.

Parameters

this

PluginContext

error?

Error

Returns

void


generateBundle()

ts
generateBundle: (this, outputOptions, bundle, isWrite) => void;

Defined in: node_modules/.pnpm/rolldown@1.0.0-rc.1/node_modules/rolldown/dist/shared/define-config-DO4TBkJV.d.mts:2631

Called at the end of bundle.generate() or immediately before the files are written in bundle.write().

To modify the files after they have been written, use the writeBundle hook.

./docs/plugin-hooks-generatebundle.md

Parameters

this

PluginContext

outputOptions

NormalizedOutputOptions

bundle

OutputBundle

isWrite

boolean

Returns

void


renderChunk()

ts
renderChunk: (this, code, chunk, outputOptions, meta) =>
  | string
  | undefined | null | void
  | BindingMagicString
  | {
  code: string | BindingMagicString;
  map?: SourceMapInput | undefined;
};

Defined in: node_modules/.pnpm/rolldown@1.0.0-rc.1/node_modules/rolldown/dist/shared/define-config-DO4TBkJV.d.mts:2594

Can be used to transform individual chunks. Called for each Rolldown output chunk file.

Returning null will apply no transformations. If you change code in this hook and want to support source maps, you need to return a map describing your changes, see Source Code Transformations section.

chunk is mutable and changes applied in this hook will propagate to other plugins and to the generated bundle. That means if you add or remove imports or exports in this hook, you should update imports, RenderedChunk.importedBindings | importedBindings and/or exports accordingly.

Parameters

this

PluginContext

code

string

chunk

RenderedChunk

outputOptions

NormalizedOutputOptions

meta

RenderedChunkMeta

Returns

| string | undefined | null | void | BindingMagicString | { code: string | BindingMagicString; map?: SourceMapInput | undefined; }


renderError()

ts
renderError: (this, error) => void;

Defined in: node_modules/.pnpm/rolldown@1.0.0-rc.1/node_modules/rolldown/dist/shared/define-config-DO4TBkJV.d.mts:2619

Called when Rolldown encounters an error during bundle.generate() or bundle.write().

To get notified when generation completes successfully, use the generateBundle hook.

Parameters

this

PluginContext

error

Error

Returns

void


renderStart()

ts
renderStart: (this, outputOptions, inputOptions) => void;

Defined in: node_modules/.pnpm/rolldown@1.0.0-rc.1/node_modules/rolldown/dist/shared/define-config-DO4TBkJV.d.mts:2581

Called initially each time bundle.generate() or bundle.write() is called.

To get notified when generation has completed, use the generateBundle and renderError hooks.

This is the recommended hook to use when you need access to the output options passed to bundle.generate() or bundle.write() as it takes the transformations by all outputOptions hooks into account and also contains the right default values for unset options.

It also receives the input options passed to rolldown() so that plugins that can be used as output plugins, i.e. plugins that only use generate phase hooks, can get access to them.

Parameters

this

PluginContext

outputOptions

NormalizedOutputOptions

inputOptions

NormalizedInputOptions

Returns

void


writeBundle()

ts
writeBundle: (this, outputOptions, bundle) => void;

Defined in: node_modules/.pnpm/rolldown@1.0.0-rc.1/node_modules/rolldown/dist/shared/define-config-DO4TBkJV.d.mts:2638

Called only at the end of bundle.write() once all files have been written.

Parameters

this

PluginContext

outputOptions

NormalizedOutputOptions

bundle

OutputBundle

Returns

void

Released under the MIT License.