KC's Workspace
    Preparing search index...
    interface PluginContext {
        debug: (
            log: string | RolldownLog | (() => string | RolldownLog),
        ) => void;
        environment: Environment;
        error: (e: string | RolldownError) => never;
        fs: RolldownFsModule;
        getModuleInfo: (moduleId: string) => ModuleInfo | null;
        info: (log: string | RolldownLog | (() => string | RolldownLog)) => void;
        meta: PluginContextMeta;
        warn: (log: string | RolldownLog | (() => string | RolldownLog)) => void;
        addWatchFile(id: string): void;
        emitFile(file: EmittedAsset | EmittedChunk | EmittedPrebuiltChunk): string;
        getFileName(referenceId: string): string;
        getModuleIds(): IterableIterator<string>;
        load(
            options: { id: string; resolveDependencies?: boolean } & Partial<
                PartialNull<ModuleOptions>,
            >,
        ): Promise<ModuleInfo>;
        parse(input: string, options?: ParserOptions | null): Program;
        resolve(
            source: string,
            importer?: string,
            options?: PluginContextResolveOptions,
        ): Promise<ResolvedId | null>;
    }

    Hierarchy (View Summary)

    Index

    Properties

    environment: Environment

    Vite-specific environment instance

    Provides abstract access to the file system.

    meta: PluginContextMeta

    An object containing potentially useful metadata.

    Methods

    getModuleInfo: (moduleId: string) => ModuleInfo | null

    Get additional information about the module in question.

    Type Declaration

      • (moduleId: string): ModuleInfo | null
      • Parameters

        • moduleId: string

        Returns ModuleInfo | null

        Module information for that module. null if the module could not be found.

    • Adds additional files to be monitored in watch mode so that changes to these files will trigger rebuilds.

      Parameters

      • id: string

      Returns void

    • Get all module ids in the current module graph.

      Returns IterableIterator<string>

      An iterator of module ids. It can be iterated via

      for (const moduleId of this.getModuleIds()) {
      // ...
      }

      or converted into an array via Array.from(this.getModuleIds()).

    • Resolve imports to module ids (i.e. file names) using the same plugins that Rolldown uses, and determine if an import should be external.

      When calling this function from a resolveId hook, you should always check if it makes sense for you to pass along the options.

      Parameters

      Returns Promise<ResolvedId | null>

      If Promise<null> is returned, the import could not be resolved by Rolldown or any plugin but was not explicitly marked as external by the user. If an absolute external id is returned that should remain absolute in the output either via the makeAbsoluteExternalsRelative option or by explicit plugin choice in the resolveId hook, external will be "absolute" instead of true.

    Logging Methods

    debug: (log: string | RolldownLog | (() => string | RolldownLog)) => void

    Generate a "debug" level log.

    code will be set to "PLUGIN_LOG" by Rolldown. Make sure to add a distinctive pluginCode to those logs for easy filtering.

    error: (e: string | RolldownError) => never

    Similar to this.warn, except that it will also abort the bundling process with an error.

    If an Error instance is passed, it will be used as-is, otherwise a new Error instance will be created with the given error message and all additional provided properties.

    In all hooks except the onLog hook, the error will be augmented with code: "PLUGIN_ERROR" and plugin: plugin.name properties. If a code property already exists and the code does not start with PLUGIN_, it will be renamed to pluginCode.

    info: (log: string | RolldownLog | (() => string | RolldownLog)) => void

    Generate a "info" level log.

    code will be set to "PLUGIN_LOG" by Rolldown. As these logs are displayed by default, use them for information that is not a warning but makes sense to display to all users on every build.

    warn: (log: string | RolldownLog | (() => string | RolldownLog)) => void

    Generate a "warn" level log.

    Just like internally generated warnings, these logs will be first passed to and filtered by plugin onLog hooks before they are forwarded to custom onLog or onwarn handlers or printed to the console.

    We encourage you to use objects with a pluginCode property as that will allow users to easily filter for those logs in an onLog handler.