/** * The following code is modified based on * https://github.com/webpack/webpack/blob/4b4ca3bb53f36a5b8fc6bc1bd976ed7af161bd80/lib/DllReferencePlugin.js * * MIT Licensed * Author Tobias Koppers @sokra * Copyright (c) JS Foundation and other contributors * https://github.com/webpack/webpack/blob/main/LICENSE */ import type { JsBuildMeta } from '@rspack/binding'; import type { Compiler } from '../Compiler.js'; export type DllReferencePluginOptions = { /** * Context of requests in the manifest (or content property) as absolute path. */ context?: string; /** * Extensions used to resolve modules in the dll bundle (only used when using 'scope'). */ extensions?: string[]; /** * An object containing content and name or a string to the absolute path of the JSON manifest to be loaded upon compilation. */ manifest: string | DllReferencePluginOptionsManifest; /** * The name where the dll is exposed (external name, defaults to manifest.name). */ name?: string; /** * Prefix which is used for accessing the content of the dll. */ scope?: string; /** * How the dll is exposed (library.type, defaults to manifest.type). */ sourceType?: DllReferencePluginOptionsSourceType; /** * The way how the export of the dll bundle is used. */ type?: 'require' | 'object'; } | { /** * The mappings from request to module info. */ content: DllReferencePluginOptionsContent; /** * Context of requests in the manifest (or content property) as absolute path. */ context?: string; /** * Extensions used to resolve modules in the dll bundle (only used when using 'scope'). */ extensions?: string[]; /** * The name where the dll is exposed (external name). */ name: string; /** * Prefix which is used for accessing the content of the dll. */ scope?: string; /** * How the dll is exposed (library.type). */ sourceType?: DllReferencePluginOptionsSourceType; /** * The way how the export of the dll bundle is used. */ type?: 'require' | 'object'; }; /** * The type how the dll is exposed (external type). */ export type DllReferencePluginOptionsSourceType = 'var' | 'assign' | 'this' | 'window' | 'global' | 'commonjs' | 'commonjs2' | 'commonjs-module' | 'amd' | 'amd-require' | 'umd' | 'umd2' | 'jsonp' | 'system'; /** * An object containing content, name and type. */ export interface DllReferencePluginOptionsManifest { /** * The mappings from request to module info. */ content: DllReferencePluginOptionsContent; /** * The name where the dll is exposed (external name). */ name?: string; /** * The type how the dll is exposed (external type). */ type?: DllReferencePluginOptionsSourceType; } /** * The mappings from request to module info. */ export interface DllReferencePluginOptionsContent { /** * Module info. */ [k: string]: { /** * Meta information about the module. */ buildMeta?: JsBuildMeta; /** * Information about the provided exports of the module. */ exports?: string[] | true; /** * Module ID. */ id?: string | number; }; } export declare class DllReferencePlugin { private options; private errors; constructor(options: DllReferencePluginOptions); apply(compiler: Compiler): void; }