{ "definitions": { "Amd": { "description": "Set the value of `require.amd` and `define.amd`. Or disable AMD support.", "anyOf": [ { "description": "You can pass `false` to disable AMD support.", "enum": [false] }, { "description": "You can pass an object to set the value of `require.amd` and `define.amd`.", "type": "object" } ] }, "AmdContainer": { "description": "Add a container for define/require functions in the AMD module.", "type": "string", "minLength": 1 }, "AssetFilterItemTypes": { "description": "Filtering value, regexp or function.", "cli": { "helper": true }, "anyOf": [ { "instanceof": "RegExp", "tsType": "RegExp" }, { "type": "string", "absolutePath": false }, { "instanceof": "Function", "tsType": "import('../lib/stats/DefaultStatsFactoryPlugin').AssetFilterItemFn" } ] }, "AssetFilterTypes": { "description": "Filtering modules.", "cli": { "helper": true }, "anyOf": [ { "type": "array", "items": { "description": "Rule to filter.", "cli": { "helper": true }, "oneOf": [ { "$ref": "#/definitions/AssetFilterItemTypes" } ] } }, { "$ref": "#/definitions/AssetFilterItemTypes" } ] }, "AssetGeneratorDataUrl": { "description": "The options for data url generator.", "anyOf": [ { "$ref": "#/definitions/AssetGeneratorDataUrlOptions" }, { "$ref": "#/definitions/AssetGeneratorDataUrlFunction" } ] }, "AssetGeneratorDataUrlFunction": { "description": "Function that executes for module and should return an DataUrl string. It can have a string as 'ident' property which contributes to the module hash.", "instanceof": "Function", "tsType": "import('../lib/asset/AssetGenerator').DataUrlFunction" }, "AssetGeneratorDataUrlOptions": { "description": "Options object for data url generation.", "type": "object", "additionalProperties": false, "properties": { "encoding": { "description": "Asset encoding (defaults to base64).", "enum": [false, "base64"] }, "mimetype": { "description": "Asset mimetype (getting from file extension by default).", "type": "string" } } }, "AssetGeneratorOptions": { "description": "Generator options for asset modules.", "type": "object", "implements": [ "#/definitions/AssetInlineGeneratorOptions", "#/definitions/AssetResourceGeneratorOptions" ], "additionalProperties": false, "properties": { "binary": { "description": "Whether or not this asset module should be considered binary. This can be set to 'false' to treat this asset module as text.", "type": "boolean" }, "dataUrl": { "$ref": "#/definitions/AssetGeneratorDataUrl" }, "emit": { "description": "Emit an output asset from this asset module. This can be set to 'false' to omit emitting e. g. for SSR.", "type": "boolean" }, "filename": { "$ref": "#/definitions/AssetModuleFilename" }, "outputPath": { "$ref": "#/definitions/AssetModuleOutputPath" }, "publicPath": { "$ref": "#/definitions/RawPublicPath" } } }, "AssetInlineGeneratorOptions": { "description": "Generator options for asset/inline modules.", "type": "object", "additionalProperties": false, "properties": { "binary": { "description": "Whether or not this asset module should be considered binary. This can be set to 'false' to treat this asset module as text.", "type": "boolean" }, "dataUrl": { "$ref": "#/definitions/AssetGeneratorDataUrl" } } }, "AssetModuleFilename": { "description": "The filename of asset modules as relative path inside the 'output.path' directory.", "anyOf": [ { "type": "string", "absolutePath": false, "minLength": 1 }, { "instanceof": "Function", "tsType": "import(\"../lib/TemplatedPathPlugin\").TemplatePathFn" } ] }, "AssetModuleOutputPath": { "description": "Emit the asset in the specified folder relative to 'output.path'. This should only be needed when custom 'publicPath' is specified to match the folder structure there.", "anyOf": [ { "type": "string", "absolutePath": false }, { "instanceof": "Function", "tsType": "import(\"../lib/TemplatedPathPlugin\").TemplatePathFn" } ] }, "AssetParserDataUrlFunction": { "description": "Function that executes for module and should return whenever asset should be inlined as DataUrl.", "instanceof": "Function", "tsType": "import(\"../lib/asset/AssetParser\").AssetParserDataUrlFunction" }, "AssetParserDataUrlOptions": { "description": "Options object for DataUrl condition.", "type": "object", "additionalProperties": false, "properties": { "maxSize": { "description": "Maximum size of asset that should be inline as modules. Default: 8kb.", "type": "number" } } }, "AssetParserOptions": { "description": "Parser options for asset modules.", "type": "object", "additionalProperties": false, "properties": { "dataUrlCondition": { "description": "The condition for inlining the asset as DataUrl.", "anyOf": [ { "$ref": "#/definitions/AssetParserDataUrlOptions" }, { "$ref": "#/definitions/AssetParserDataUrlFunction" } ] } } }, "AssetResourceGeneratorOptions": { "description": "Generator options for asset/resource modules.", "type": "object", "additionalProperties": false, "properties": { "binary": { "description": "Whether or not this asset module should be considered binary. This can be set to 'false' to treat this asset module as text.", "type": "boolean" }, "emit": { "description": "Emit an output asset from this asset module. This can be set to 'false' to omit emitting e. g. for SSR.", "type": "boolean" }, "filename": { "$ref": "#/definitions/AssetModuleFilename" }, "outputPath": { "$ref": "#/definitions/AssetModuleOutputPath" }, "publicPath": { "$ref": "#/definitions/RawPublicPath" } } }, "AuxiliaryComment": { "description": "Add a comment in the UMD wrapper.", "anyOf": [ { "description": "Append the same comment above each import style.", "type": "string" }, { "$ref": "#/definitions/LibraryCustomUmdCommentObject" } ] }, "Bail": { "description": "Report the first error as a hard error instead of tolerating it.", "type": "boolean" }, "CacheOptions": { "description": "Cache generated modules and chunks to improve performance for multiple incremental builds.", "anyOf": [ { "description": "Enable in memory caching.", "enum": [true] }, { "$ref": "#/definitions/CacheOptionsNormalized" } ] }, "CacheOptionsNormalized": { "description": "Cache generated modules and chunks to improve performance for multiple incremental builds.", "anyOf": [ { "description": "Disable caching.", "enum": [false] }, { "$ref": "#/definitions/MemoryCacheOptions" }, { "$ref": "#/definitions/FileCacheOptions" } ] }, "Charset": { "description": "Add charset attribute for script tag.", "type": "boolean" }, "ChunkFilename": { "description": "Specifies the filename template of output files of non-initial chunks on disk. You must **not** specify an absolute path here, but the path may contain folders separated by '/'! The specified path is joined with the value of the 'output.path' option to determine the location on disk.", "oneOf": [ { "$ref": "#/definitions/FilenameTemplate" } ] }, "ChunkFormat": { "description": "The format of chunks (formats included by default are 'array-push' (web/WebWorker), 'commonjs' (node.js), 'module' (ESM), but others might be added by plugins).", "anyOf": [ { "enum": ["array-push", "commonjs", "module", false] }, { "type": "string" } ] }, "ChunkLoadTimeout": { "description": "Number of milliseconds before chunk request expires.", "type": "number" }, "ChunkLoading": { "description": "The method of loading chunks (methods included by default are 'jsonp' (web), 'import' (ESM), 'importScripts' (WebWorker), 'require' (sync node.js), 'async-node' (async node.js), but others might be added by plugins).", "anyOf": [ { "enum": [false] }, { "$ref": "#/definitions/ChunkLoadingType" } ] }, "ChunkLoadingGlobal": { "description": "The global variable used by webpack for loading of chunks.", "type": "string" }, "ChunkLoadingType": { "description": "The method of loading chunks (methods included by default are 'jsonp' (web), 'import' (ESM), 'importScripts' (WebWorker), 'require' (sync node.js), 'async-node' (async node.js), but others might be added by plugins).", "anyOf": [ { "enum": ["jsonp", "import-scripts", "require", "async-node", "import"] }, { "type": "string" } ] }, "Clean": { "description": "Clean the output directory before emit.", "anyOf": [ { "type": "boolean" }, { "$ref": "#/definitions/CleanOptions" } ] }, "CleanOptions": { "description": "Advanced options for cleaning assets.", "type": "object", "additionalProperties": false, "properties": { "dry": { "description": "Log the assets that should be removed instead of deleting them.", "type": "boolean" }, "keep": { "description": "Keep these assets.", "anyOf": [ { "instanceof": "RegExp", "tsType": "RegExp" }, { "type": "string", "absolutePath": false }, { "instanceof": "Function", "tsType": "import(\"../lib/CleanPlugin\").KeepFn" } ] } } }, "CompareBeforeEmit": { "description": "Check if to be emitted file already exists and have the same content before writing to output filesystem.", "type": "boolean" }, "ConcatenateModulesOptions": { "description": "Advanced options for module concatenation.", "type": "object", "additionalProperties": false, "properties": { "commonjs": { "description": "Also concatenate CommonJS modules with statically analyzable exports. Defaults to 'true'.", "type": "boolean" } }, "added": "5.109.0" }, "Context": { "description": "The base directory (absolute path!) for resolving the `entry` option. If `output.pathinfo` is set, the included pathinfo is shortened to this directory.", "type": "string", "absolutePath": true }, "CrossOriginLoading": { "description": "This option enables cross-origin loading of chunks.", "enum": [false, "anonymous", "use-credentials"] }, "CssAutoOrModuleParserOptions": { "description": "Parser options for css/auto and css/module modules.", "type": "object", "additionalProperties": false, "properties": { "animation": { "$ref": "#/definitions/CssParserAnimation" }, "as": { "$ref": "#/definitions/CssParserAs" }, "container": { "$ref": "#/definitions/CssParserContainer" }, "customIdents": { "$ref": "#/definitions/CssParserCustomIdents" }, "customMedia": { "$ref": "#/definitions/CssParserCustomMedia" }, "customSelectors": { "$ref": "#/definitions/CssParserCustomSelectors" }, "dashedIdents": { "$ref": "#/definitions/CssParserDashedIdents" }, "exportType": { "$ref": "#/definitions/CssParserExportType" }, "fontPreload": { "$ref": "#/definitions/CssParserFontPreload" }, "function": { "$ref": "#/definitions/CssParserFunction" }, "grid": { "$ref": "#/definitions/CssParserGrid" }, "import": { "$ref": "#/definitions/CssParserImport" }, "namedExports": { "$ref": "#/definitions/CssParserNamedExports" }, "pure": { "$ref": "#/definitions/CssParserPure" }, "url": { "$ref": "#/definitions/CssParserUrl" }, "urlHints": { "$ref": "#/definitions/UrlHints" } } }, "CssChunkFilename": { "description": "Specifies the filename template of non-initial output css files on disk. You must **not** specify an absolute path here, but the path may contain folders separated by '/'! The specified path is joined with the value of the 'output.path' option to determine the location on disk.", "oneOf": [ { "$ref": "#/definitions/FilenameTemplate" } ] }, "CssFilename": { "description": "Specifies the filename template of output css files on disk. You must **not** specify an absolute path here, but the path may contain folders separated by '/'! The specified path is joined with the value of the 'output.path' option to determine the location on disk.", "oneOf": [ { "$ref": "#/definitions/FilenameTemplate" } ] }, "CssGeneratorEsModule": { "description": "Configure the generated JS modules that use the ES modules syntax.", "type": "boolean" }, "CssGeneratorExportsConvention": { "description": "Specifies the convention of exported names.", "anyOf": [ { "enum": [ "as-is", "camel-case", "camel-case-only", "dashes", "dashes-only" ] }, { "instanceof": "Function", "tsType": "import('../lib/dependencies/CssIcssExportDependency').ExportsConventionFn" } ] }, "CssGeneratorExportsOnly": { "description": "Avoid generating and loading a stylesheet and only embed exports from css into output javascript files.", "type": "boolean" }, "CssGeneratorLocalIdentName": { "description": "Configure the generated local ident name.", "anyOf": [ { "type": "string" }, { "instanceof": "Function", "tsType": "import(\"../lib/TemplatedPathPlugin\").TemplatePathFn" } ] }, "CssGeneratorOptions": { "description": "Generator options for css modules.", "type": "object", "additionalProperties": false, "properties": { "esModule": { "$ref": "#/definitions/CssGeneratorEsModule" }, "exportsOnly": { "$ref": "#/definitions/CssGeneratorExportsOnly" } } }, "CssModuleGeneratorOptions": { "description": "Generator options for css/module modules.", "type": "object", "additionalProperties": false, "properties": { "esModule": { "$ref": "#/definitions/CssGeneratorEsModule" }, "exportType": { "$ref": "#/definitions/CssParserExportType" }, "exportsConvention": { "$ref": "#/definitions/CssGeneratorExportsConvention" }, "exportsOnly": { "$ref": "#/definitions/CssGeneratorExportsOnly" }, "localIdentHashDigest": { "$ref": "#/definitions/HashDigest" }, "localIdentHashDigestLength": { "$ref": "#/definitions/HashDigestLength" }, "localIdentHashFunction": { "$ref": "#/definitions/HashFunction" }, "localIdentHashSalt": { "$ref": "#/definitions/HashSalt" }, "localIdentName": { "$ref": "#/definitions/CssGeneratorLocalIdentName" } } }, "CssModuleParserOptions": { "description": "Parser options for css/global modules.", "type": "object", "additionalProperties": false, "properties": { "animation": { "$ref": "#/definitions/CssParserAnimation" }, "as": { "$ref": "#/definitions/CssParserAs" }, "container": { "$ref": "#/definitions/CssParserContainer" }, "customIdents": { "$ref": "#/definitions/CssParserCustomIdents" }, "customMedia": { "$ref": "#/definitions/CssParserCustomMedia" }, "customSelectors": { "$ref": "#/definitions/CssParserCustomSelectors" }, "dashedIdents": { "$ref": "#/definitions/CssParserDashedIdents" }, "exportType": { "$ref": "#/definitions/CssParserExportType" }, "fontPreload": { "$ref": "#/definitions/CssParserFontPreload" }, "function": { "$ref": "#/definitions/CssParserFunction" }, "grid": { "$ref": "#/definitions/CssParserGrid" }, "import": { "$ref": "#/definitions/CssParserImport" }, "namedExports": { "$ref": "#/definitions/CssParserNamedExports" }, "url": { "$ref": "#/definitions/CssParserUrl" }, "urlHints": { "$ref": "#/definitions/UrlHints" } } }, "CssParserAnimation": { "description": "Enable/disable renaming of `@keyframes`.", "type": "boolean" }, "CssParserAs": { "description": "Configure how the CSS source is parsed: as a full stylesheet (default) or as a block's contents (e.g. the content of an HTML `style` attribute).", "enum": ["stylesheet", "block-contents"] }, "CssParserContainer": { "description": "Enable/disable renaming of `@container` names.", "type": "boolean" }, "CssParserCustomIdents": { "description": "Enable/disable renaming of custom identifiers.", "type": "boolean" }, "CssParserCustomMedia": { "description": "Enable/disable resolution of `@custom-media` at-rules (file-local build-time substitution).", "type": "boolean", "added": "5.109.0" }, "CssParserCustomSelectors": { "description": "Enable/disable resolution of `@custom-selector` at-rules (file-local build-time expansion to `:is(...)`).", "type": "boolean", "added": "5.109.0" }, "CssParserDashedIdents": { "description": "Enable/disable renaming of dashed identifiers, e. g. custom properties.", "type": "boolean" }, "CssParserExportType": { "description": "Configure how CSS content is exported as default.", "enum": ["link", "text", "css-style-sheet", "style"] }, "CssParserFontPreload": { "description": "Auto-emit `` for the primary `src` URL of each `@font-face` reachable from an HTML entry's initial CSS. Only the first URL per `@font-face` is preloaded (preloading every format would double-download). Off by default; `parser.css.urlHints` rules and per-URL magic comments still override the seeded defaults. Set `output.crossOriginLoading` so the preload matches the font's CORS fetch.", "type": "boolean", "added": "5.109.0" }, "CssParserFunction": { "description": "Enable/disable renaming of `@function` names.", "type": "boolean" }, "CssParserGrid": { "description": "Enable/disable renaming of grid identifiers.", "type": "boolean" }, "CssParserImport": { "description": "Enable/disable `@import` at-rules handling.", "type": "boolean" }, "CssParserNamedExports": { "description": "Use ES modules named export for css exports.", "type": "boolean" }, "CssParserOptions": { "description": "Parser options for css modules.", "type": "object", "additionalProperties": false, "properties": { "as": { "$ref": "#/definitions/CssParserAs" }, "customMedia": { "$ref": "#/definitions/CssParserCustomMedia" }, "customSelectors": { "$ref": "#/definitions/CssParserCustomSelectors" }, "exportType": { "$ref": "#/definitions/CssParserExportType" }, "fontPreload": { "$ref": "#/definitions/CssParserFontPreload" }, "import": { "$ref": "#/definitions/CssParserImport" }, "namedExports": { "$ref": "#/definitions/CssParserNamedExports" }, "url": { "$ref": "#/definitions/CssParserUrl" }, "urlHints": { "$ref": "#/definitions/UrlHints" } } }, "CssParserPure": { "description": "Enable strict pure mode: every selector must contain at least one local class or id selector.", "type": "boolean" }, "CssParserUrl": { "description": "Enable/disable `url()`/`image-set()`/`src()`/`image()` functions handling.", "type": "boolean" }, "DeferImportExperimentOptions": { "description": "Options for defer import.", "type": "boolean", "required": ["asyncModule"] }, "Dependencies": { "description": "References to other configurations to depend on.", "type": "array", "items": { "description": "References to another configuration to depend on.", "type": "string" } }, "DevServer": { "description": "Options for the webpack-dev-server.", "anyOf": [ { "description": "Disable dev server.", "enum": [false] }, { "description": "Options for the webpack-dev-server.", "type": "object" } ] }, "DevTool": { "description": "A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).", "anyOf": [ { "type": "array", "items": { "description": "Allow to assign devtool values per asset type (all, javascript, or css).", "type": "object", "additionalProperties": false, "properties": { "type": { "description": "Which asset type should receive this devtool value.", "enum": ["all", "javascript", "css"] }, "use": { "$ref": "#/definitions/RawDevTool" } }, "required": ["type", "use"] } }, { "$ref": "#/definitions/RawDevTool" } ] }, "DevtoolFallbackModuleFilenameTemplate": { "description": "Similar to `output.devtoolModuleFilenameTemplate`, but used in the case of duplicate module identifiers.", "anyOf": [ { "type": "string" }, { "instanceof": "Function", "tsType": "import('../lib/ModuleFilenameHelpers').ModuleFilenameTemplateFunction" } ] }, "DevtoolModuleFilenameTemplate": { "description": "Filename template string of function for the sources array in a generated SourceMap.", "anyOf": [ { "type": "string" }, { "instanceof": "Function", "tsType": "import('../lib/ModuleFilenameHelpers').ModuleFilenameTemplateFunction" } ] }, "DevtoolNamespace": { "description": "Module namespace to use when interpolating filename template string for the sources array in a generated SourceMap. Defaults to `output.library` if not set. It's useful for avoiding runtime collisions in sourcemaps from multiple webpack projects built as libraries.", "type": "string" }, "Dotenv": { "description": "Enable and configure the Dotenv plugin to load environment variables from .env files.", "anyOf": [ { "description": "Enable Dotenv plugin with default options.", "type": "boolean" }, { "$ref": "#/definitions/DotenvPluginOptions" } ] }, "DotenvPluginOptions": { "description": "Options for Dotenv plugin.", "type": "object", "additionalProperties": false, "properties": { "dir": { "description": "The directory from which .env files are loaded. Can be an absolute path, false will disable the .env file loading.", "anyOf": [ { "enum": [false] }, { "type": "string", "absolutePath": true } ] }, "prefix": { "description": "Only expose environment variables that start with these prefixes. Defaults to 'WEBPACK_'.", "anyOf": [ { "type": "array", "items": { "description": "A prefix that environment variables must start with to be exposed.", "type": "string", "minLength": 1 } }, { "type": "string", "minLength": 1 } ] }, "template": { "description": "Template patterns for .env file names. Use [mode] as placeholder for the webpack mode. Defaults to ['.env', '.env.local', '.env.[mode]', '.env.[mode].local'].", "type": "array", "items": { "description": "A template pattern for .env file names.", "type": "string", "minLength": 1 } } } }, "EmptyGeneratorOptions": { "description": "No generator options are supported for this module type.", "type": "object", "additionalProperties": false }, "EmptyParserOptions": { "description": "No parser options are supported for this module type.", "type": "object", "additionalProperties": false }, "EnabledChunkLoadingTypes": { "description": "List of chunk loading types enabled for use by entry points.", "type": "array", "items": { "$ref": "#/definitions/ChunkLoadingType" } }, "EnabledLibraryTypes": { "description": "List of library types enabled for use by entry points.", "type": "array", "items": { "$ref": "#/definitions/LibraryType" } }, "EnabledWasmLoadingTypes": { "description": "List of wasm loading types enabled for use by entry points.", "type": "array", "items": { "$ref": "#/definitions/WasmLoadingType" } }, "Entry": { "description": "The entry point(s) of the compilation.", "anyOf": [ { "$ref": "#/definitions/EntryDynamic" }, { "$ref": "#/definitions/EntryStatic" } ] }, "EntryDescription": { "description": "An object with entry point description.", "type": "object", "additionalProperties": false, "properties": { "asyncChunks": { "description": "Enable/disable creating async chunks that are loaded on demand.", "type": "boolean" }, "baseUri": { "description": "Base uri for this entry.", "type": "string" }, "chunkLoading": { "$ref": "#/definitions/ChunkLoading" }, "dependOn": { "description": "The entrypoints that the current entrypoint depend on. They must be loaded when this entrypoint is loaded.", "anyOf": [ { "description": "The entrypoints that the current entrypoint depend on. They must be loaded when this entrypoint is loaded.", "type": "array", "items": { "description": "An entrypoint that the current entrypoint depend on. It must be loaded when this entrypoint is loaded.", "type": "string", "minLength": 1 }, "minItems": 1, "uniqueItems": true }, { "description": "An entrypoint that the current entrypoint depend on. It must be loaded when this entrypoint is loaded.", "type": "string", "minLength": 1 } ] }, "filename": { "$ref": "#/definitions/EntryFilename" }, "html": { "description": "Generate an HTML file for this entrypoint with its JS and CSS output chunks injected. An object overrides `output.html` option by option for this entry; `inline` is resolved once per generated page and can only be set on `output.html`.", "anyOf": [ { "type": "boolean" }, { "$ref": "#/definitions/OutputHtmlOptions" } ] }, "import": { "$ref": "#/definitions/EntryItem" }, "layer": { "$ref": "#/definitions/Layer" }, "library": { "$ref": "#/definitions/LibraryOptions" }, "publicPath": { "$ref": "#/definitions/PublicPath" }, "runtime": { "$ref": "#/definitions/EntryRuntime" }, "wasmLoading": { "$ref": "#/definitions/WasmLoading" }, "worker": { "description": "Mark this entry as a worker so its output file uses 'output.workerChunkFilename'.", "type": "boolean" } }, "required": ["import"] }, "EntryDescriptionNormalized": { "description": "An object with entry point description.", "type": "object", "additionalProperties": false, "properties": { "asyncChunks": { "description": "Enable/disable creating async chunks that are loaded on demand.", "type": "boolean" }, "baseUri": { "description": "Base uri for this entry.", "type": "string" }, "chunkLoading": { "$ref": "#/definitions/ChunkLoading" }, "dependOn": { "description": "The entrypoints that the current entrypoint depend on. They must be loaded when this entrypoint is loaded.", "type": "array", "items": { "description": "An entrypoint that the current entrypoint depend on. It must be loaded when this entrypoint is loaded.", "type": "string", "minLength": 1 }, "minItems": 1, "uniqueItems": true }, "filename": { "$ref": "#/definitions/Filename" }, "html": { "description": "Generate an HTML file for this entrypoint with its JS and CSS output chunks injected. An object overrides `output.html` option by option for this entry; `inline` is resolved once per generated page and can only be set on `output.html`.", "anyOf": [ { "type": "boolean" }, { "$ref": "#/definitions/OutputHtmlOptions" } ] }, "import": { "description": "Module(s) that are loaded upon startup. The last one is exported.", "type": "array", "items": { "description": "Module that is loaded upon startup. Only the last one is exported.", "type": "string", "minLength": 1 }, "minItems": 1, "uniqueItems": true }, "layer": { "$ref": "#/definitions/Layer" }, "library": { "$ref": "#/definitions/LibraryOptions" }, "publicPath": { "$ref": "#/definitions/PublicPath" }, "runtime": { "$ref": "#/definitions/EntryRuntime" }, "wasmLoading": { "$ref": "#/definitions/WasmLoading" }, "worker": { "description": "Mark this entry as a worker so its output file uses 'output.workerChunkFilename'.", "type": "boolean" } } }, "EntryDynamic": { "description": "A Function returning an entry object, an entry string, an entry array or a promise to these things.", "instanceof": "Function", "tsType": "import('../lib/DynamicEntryPlugin').RawEntryDynamic" }, "EntryDynamicNormalized": { "description": "A Function returning a Promise resolving to a normalized entry.", "instanceof": "Function", "tsType": "import('../lib/DynamicEntryPlugin').EntryDynamic" }, "EntryFilename": { "description": "Specifies the filename of the output file on disk. You must **not** specify an absolute path here, but the path may contain folders separated by '/'! The specified path is joined with the value of the 'output.path' option to determine the location on disk.", "oneOf": [ { "$ref": "#/definitions/FilenameTemplate" } ] }, "EntryItem": { "description": "Module(s) that are loaded upon startup.", "anyOf": [ { "description": "All modules are loaded upon startup. The last one is exported.", "type": "array", "items": { "description": "A module that is loaded upon startup. Only the last one is exported.", "type": "string", "minLength": 1 }, "minItems": 1, "uniqueItems": true }, { "description": "The string is resolved to a module which is loaded upon startup.", "type": "string", "minLength": 1 } ] }, "EntryNormalized": { "description": "The entry point(s) of the compilation.", "anyOf": [ { "$ref": "#/definitions/EntryDynamicNormalized" }, { "$ref": "#/definitions/EntryStaticNormalized" } ] }, "EntryObject": { "description": "Multiple entry bundles are created. The key is the entry name. The value can be a string, an array or an entry description object.", "type": "object", "additionalProperties": { "description": "An entry point with name.", "anyOf": [ { "$ref": "#/definitions/EntryItem" }, { "$ref": "#/definitions/EntryDescription" } ] } }, "EntryRuntime": { "description": "The name of the runtime chunk. If set a runtime chunk with this name is created or an existing entrypoint is used as runtime.", "anyOf": [ { "enum": [false] }, { "type": "string", "minLength": 1 } ] }, "EntryStatic": { "description": "A static entry description.", "anyOf": [ { "$ref": "#/definitions/EntryObject" }, { "$ref": "#/definitions/EntryUnnamed" } ] }, "EntryStaticNormalized": { "description": "Multiple entry bundles are created. The key is the entry name. The value is an entry description object.", "type": "object", "additionalProperties": { "description": "An object with entry point description.", "oneOf": [ { "$ref": "#/definitions/EntryDescriptionNormalized" } ] } }, "EntryUnnamed": { "description": "An entry point without name.", "oneOf": [ { "$ref": "#/definitions/EntryItem" } ] }, "Environment": { "description": "The abilities of the environment where the webpack generated code should run.", "type": "object", "additionalProperties": false, "properties": { "arrowFunction": { "description": "The environment supports arrow functions ('() => { ... }').", "type": "boolean" }, "asyncFunction": { "description": "The environment supports async function and await ('async function () { await ... }').", "type": "boolean" }, "bigIntLiteral": { "description": "The environment supports BigInt as literal (123n).", "type": "boolean" }, "const": { "description": "The environment supports const and let for variable declarations.", "type": "boolean" }, "deferImport": { "description": "The environment supports deferred module evaluation ('import defer * as ns from \"...\"', 'import.defer(\"...\")').", "type": "boolean", "experimental": true, "added": "5.110.0" }, "destructuring": { "description": "The environment supports destructuring ('{ a, b } = obj').", "type": "boolean" }, "document": { "description": "The environment supports 'document'.", "type": "boolean" }, "dynamicImport": { "description": "The environment supports an async import() function to import EcmaScript modules.", "type": "boolean" }, "dynamicImportInWorker": { "description": "The environment supports an async import() is available when creating a worker.", "type": "boolean" }, "forOf": { "description": "The environment supports 'for of' iteration ('for (const x of array) { ... }').", "type": "boolean" }, "generator": { "description": "The environment supports generator functions and yield ('function* () { yield ... }').", "type": "boolean", "added": "5.109.0" }, "globalThis": { "description": "The environment supports 'globalThis'.", "type": "boolean" }, "hasOwn": { "description": "The environment supports 'Object.hasOwn'.", "type": "boolean" }, "importMetaDirnameAndFilename": { "description": "The environment supports `import.meta.dirname` and `import.meta.filename`.", "type": "boolean" }, "let": { "description": "The environment supports let for variable declarations.", "type": "boolean" }, "logicalAssignment": { "description": "The environment supports logical assignment operators ('a ||= b', 'a &&= b', 'a ??= b').", "type": "boolean" }, "methodShorthand": { "description": "The environment supports object method shorthand ('{ module() {} }').", "type": "boolean" }, "module": { "description": "The environment supports EcmaScript Module syntax to import EcmaScript modules (import ... from '...').", "type": "boolean" }, "modulePreload": { "description": "The environment supports `` to preload EcmaScript modules.", "type": "boolean", "added": "5.109.0" }, "nodeBuiltinModuleGetter": { "description": "The environment supports `process.getBuiltinModule()` to synchronously load Node.js core modules.", "type": "boolean" }, "nodePrefixForCoreModules": { "description": "The environment supports `node:` prefix for Node.js core modules.", "type": "boolean" }, "optionalChaining": { "description": "The environment supports optional chaining ('obj?.a' or 'obj?.()').", "type": "boolean" }, "sourceImport": { "description": "The environment supports source phase imports ('import source m from \"...\"', 'import.source(\"...\")').", "type": "boolean", "experimental": true, "added": "5.110.0" }, "spread": { "description": "The environment supports spread and rest in array/object literals and calls ('{ ...obj }', 'fn(...args)').", "type": "boolean" }, "symbol": { "description": "The environment supports 'Symbol' (and well-known symbols like 'Symbol.toStringTag').", "type": "boolean" }, "templateLiteral": { "description": "The environment supports template literals.", "type": "boolean" } } }, "Experiments": { "description": "Enables/Disables experiments (experimental features with relax SemVer compatibility).", "type": "object", "additionalProperties": true, "properties": { "asyncWebAssembly": { "description": "Support WebAssembly as asynchronous EcmaScript Module. `\"auto\"` (the default) enables it unless a loader is registered for WebAssembly files.", "anyOf": [ { "description": "Enable the built-in async WebAssembly support only when no loader is registered for WebAssembly files.", "enum": ["auto"] }, { "description": "Enable/disable the built-in async WebAssembly support.", "type": "boolean" } ], "experimental": true, "added": "5.0.0" }, "backCompat": { "description": "Enable backward-compat layer with deprecation warnings for many webpack 4 APIs.", "type": "boolean", "experimental": true, "added": "5.62.0" }, "buildHttp": { "description": "Build http(s): urls using a lockfile and resource content cache.", "anyOf": [ { "$ref": "#/definitions/HttpUriAllowedUris" }, { "$ref": "#/definitions/HttpUriOptions" } ], "experimental": true, "added": "5.49.0" }, "cacheUnaffected": { "description": "Enable additional in memory caching of modules that are unchanged and reference only unchanged modules.", "type": "boolean", "experimental": true, "added": "5.54.0" }, "css": { "description": "Enable css support. `\"auto\"` (the default) enables the built-in CSS support unless a loader is registered for CSS files.", "anyOf": [ { "description": "Enable the built-in CSS support only when no loader is registered for CSS files.", "enum": ["auto"] }, { "description": "Enable/disable the built-in CSS support.", "type": "boolean" } ], "experimental": true, "added": "5.66.0" }, "deferImport": { "description": "Enable experimental tc39 proposal https://github.com/tc39/proposal-defer-import-eval. This allows to defer execution of a module until it's first use.", "type": "boolean", "experimental": true, "added": "5.100.0" }, "futureDefaults": { "description": "Apply defaults of next major version.", "type": "boolean", "experimental": true, "added": "5.53.0" }, "html": { "description": "Enable HTML entry support. Treats `.html` files as a first-class module type so they can be used directly as entry points. `\"auto\"` (the default) enables it unless a loader is registered for HTML files.", "anyOf": [ { "description": "Enable the built-in HTML support only when no loader is registered for HTML files.", "enum": ["auto"] }, { "description": "Enable/disable the built-in HTML support.", "type": "boolean" } ], "experimental": true, "added": "5.107.0" }, "lazyCompilation": { "description": "Compile entrypoints and import()s only when they are accessed.", "anyOf": [ { "type": "boolean" }, { "$ref": "#/definitions/LazyCompilationOptions" } ], "experimental": true, "added": "5.17.0" }, "outputModule": { "description": "Allow output javascript files as module source type.", "type": "boolean", "experimental": true, "added": "5.0.0" }, "sourceImport": { "description": "Enable experimental tc39 proposal https://github.com/tc39/proposal-source-phase-imports. This allows importing modules at source phase.", "type": "boolean", "experimental": true, "added": "5.106.0" }, "syncWebAssembly": { "description": "Support WebAssembly as synchronous EcmaScript Module (outdated).", "type": "boolean", "experimental": true, "added": "5.0.0" }, "typescript": { "description": "Enable typescript support. `\"auto\"` (the default) enables the built-in TypeScript support when Node.js supports it (>= 22.6) and no loader is registered for TypeScript files.", "anyOf": [ { "description": "Enable the built-in TypeScript support only when Node.js supports it (>= 22.6) and no loader is registered for TypeScript files.", "enum": ["auto"] }, { "description": "Enable/disable the built-in TypeScript support.", "type": "boolean" } ], "experimental": true, "added": "5.107.0" } } }, "ExperimentsNormalized": { "description": "Enables/Disables experiments (experimental features with relax SemVer compatibility).", "type": "object", "additionalProperties": false, "properties": { "asyncWebAssembly": { "description": "Support WebAssembly as asynchronous EcmaScript Module. `\"auto\"` (the default) enables it unless a loader is registered for WebAssembly files.", "anyOf": [ { "description": "Enable the built-in async WebAssembly support only when no loader is registered for WebAssembly files.", "enum": ["auto"] }, { "description": "Enable/disable the built-in async WebAssembly support.", "type": "boolean" } ], "experimental": true, "added": "5.0.0" }, "backCompat": { "description": "Enable backward-compat layer with deprecation warnings for many webpack 4 APIs.", "type": "boolean", "experimental": true, "added": "5.62.0" }, "buildHttp": { "description": "Build http(s): urls using a lockfile and resource content cache.", "oneOf": [ { "$ref": "#/definitions/HttpUriOptions" } ], "experimental": true, "added": "5.49.0" }, "cacheUnaffected": { "description": "Enable additional in memory caching of modules that are unchanged and reference only unchanged modules.", "type": "boolean", "experimental": true, "added": "5.54.0" }, "css": { "description": "Enable css support. `\"auto\"` (the default) enables the built-in CSS support unless a loader is registered for CSS files.", "anyOf": [ { "description": "Enable the built-in CSS support only when no loader is registered for CSS files.", "enum": ["auto"] }, { "description": "Enable/disable the built-in CSS support.", "type": "boolean" } ], "experimental": true, "added": "5.66.0" }, "deferImport": { "description": "Enable experimental tc39 proposal https://github.com/tc39/proposal-defer-import-eval. This allows to defer execution of a module until it's first use.", "type": "boolean", "experimental": true, "added": "5.100.0" }, "futureDefaults": { "description": "Apply defaults of next major version.", "type": "boolean", "experimental": true, "added": "5.53.0" }, "html": { "description": "Enable HTML entry support. Treats `.html` files as a first-class module type so they can be used directly as entry points. `\"auto\"` (the default) enables it unless a loader is registered for HTML files.", "anyOf": [ { "description": "Enable the built-in HTML support only when no loader is registered for HTML files.", "enum": ["auto"] }, { "description": "Enable/disable the built-in HTML support.", "type": "boolean" } ], "experimental": true, "added": "5.107.0" }, "lazyCompilation": { "description": "Compile entrypoints and import()s only when they are accessed.", "anyOf": [ { "enum": [false] }, { "$ref": "#/definitions/LazyCompilationOptions" } ], "experimental": true, "added": "5.17.0" }, "outputModule": { "description": "Allow output javascript files as module source type.", "type": "boolean", "experimental": true, "added": "5.0.0" }, "sourceImport": { "description": "Enable experimental tc39 proposal https://github.com/tc39/proposal-source-phase-imports. This allows importing modules at source phase.", "type": "boolean", "experimental": true, "added": "5.106.0" }, "syncWebAssembly": { "description": "Support WebAssembly as synchronous EcmaScript Module (outdated).", "type": "boolean", "experimental": true, "added": "5.0.0" }, "typescript": { "description": "Enable typescript support. `\"auto\"` (the default) enables the built-in TypeScript support when Node.js supports it (>= 22.6) and no loader is registered for TypeScript files.", "anyOf": [ { "description": "Enable the built-in TypeScript support only when Node.js supports it (>= 22.6) and no loader is registered for TypeScript files.", "enum": ["auto"] }, { "description": "Enable/disable the built-in TypeScript support.", "type": "boolean" } ], "experimental": true, "added": "5.107.0" } } }, "Extends": { "description": "Extend configuration from another configuration (only works when using webpack-cli).", "anyOf": [ { "type": "array", "items": { "$ref": "#/definitions/ExtendsItem" } }, { "$ref": "#/definitions/ExtendsItem" } ] }, "ExtendsItem": { "description": "Path to the configuration to be extended (only works when using webpack-cli).", "type": "string" }, "ExternalItem": { "description": "Specify dependency that shouldn't be resolved by webpack, but should become dependencies of the resulting bundle. The kind of the dependency depends on `output.libraryTarget`.", "anyOf": [ { "description": "Every matched dependency becomes external.", "instanceof": "RegExp", "tsType": "RegExp" }, { "description": "An exact matched dependency becomes external. The same string is used as external dependency.", "type": "string" }, { "description": "If an dependency matches exactly a property of the object, the property value is used as dependency.", "type": "object", "additionalProperties": { "$ref": "#/definitions/ExternalItemValue" }, "properties": { "byLayer": { "description": "Specify externals depending on the layer.", "anyOf": [ { "type": "object", "additionalProperties": { "$ref": "#/definitions/ExternalItem" } }, { "instanceof": "Function", "tsType": "import('../lib/ExternalModuleFactoryPlugin').ExternalItemByLayerFn" } ] } } }, { "$ref": "#/definitions/ExternalItemFunction" } ] }, "ExternalItemFunction": { "description": "The function is called on each dependency.", "anyOf": [ { "$ref": "#/definitions/ExternalItemFunctionCallback" }, { "$ref": "#/definitions/ExternalItemFunctionPromise" } ] }, "ExternalItemFunctionCallback": { "description": "The function is called on each dependency (`function(context, request, callback(err, result))`).", "instanceof": "Function", "tsType": "import(\"../lib/ExternalModuleFactoryPlugin\").ExternalItemFunctionCallback" }, "ExternalItemFunctionPromise": { "description": "The function is called on each dependency (`function(context, request)`).", "instanceof": "Function", "tsType": "import(\"../lib/ExternalModuleFactoryPlugin\").ExternalItemFunctionPromise" }, "ExternalItemInterop": { "description": "How an external's exports interoperate with ES module imports, independent of the importing module's strictness (similar to Rollup's `output.interop`). 'default': treat as CommonJS, the default import is the whole exports (Node.js semantics). 'esModule': treat as an ES module namespace, the default import is unboxed to `.default`.", "enum": ["default", "esModule"], "added": "5.109.0" }, "ExternalItemSideEffects": { "description": "Whether importing the external has side effects (like the `sideEffects` flag in a package.json). `false` allows webpack to drop the external when none of its exports are used. Defaults to `true`, as webpack can't analyze an external.", "type": "boolean", "added": "5.110.0" }, "ExternalItemValue": { "description": "The dependency used for the external.", "anyOf": [ { "$ref": "#/definitions/ExternalItemValueTarget" }, { "$ref": "#/definitions/ExternalItemValueWithOptions" } ] }, "ExternalItemValueObject": { "description": "The target of the external with a type, optionally with an 'interop' hint describing how its exports interoperate with ES module imports.", "type": "object", "additionalProperties": { "description": "The target of the external for a specific external type.", "anyOf": [ { "type": "array", "items": { "description": "A part of the target of the external.", "type": "string", "minLength": 1 } }, { "description": "The target of the external.", "type": "string" } ] }, "properties": { "interop": { "$ref": "#/definitions/ExternalItemInterop" } } }, "ExternalItemValueTarget": { "description": "The target of the external.", "anyOf": [ { "type": "array", "items": { "description": "A part of the target of the external.", "type": "string", "minLength": 1 } }, { "description": "`true`: The dependency name is used as target of the external.", "type": "boolean" }, { "description": "The target of the external.", "type": "string" }, { "$ref": "#/definitions/ExternalItemValueObject" } ] }, "ExternalItemValueWithOptions": { "description": "The target of the external together with options describing how webpack should treat it.", "type": "object", "additionalProperties": false, "properties": { "external": { "$ref": "#/definitions/ExternalItemValueTarget" }, "sideEffects": { "$ref": "#/definitions/ExternalItemSideEffects" } }, "required": ["external"], "added": "5.110.0" }, "Externals": { "description": "Specify dependencies that shouldn't be resolved by webpack, but should become dependencies of the resulting bundle. The kind of the dependency depends on `output.libraryTarget`.", "anyOf": [ { "type": "array", "items": { "$ref": "#/definitions/ExternalItem" } }, { "$ref": "#/definitions/ExternalItem" } ] }, "ExternalsPresets": { "description": "Enable presets of externals for specific targets.", "type": "object", "additionalProperties": false, "properties": { "bun": { "description": "Treat bun built-in modules like 'bun', 'bun:sqlite' or 'bun:ffi' and node.js built-in modules as external and load them via import when used (for the Bun runtime).", "type": "boolean" }, "deno": { "description": "Treat node.js built-in modules like fs, path or vm as external and load them via the required 'node:' specifier when used (for the Deno runtime).", "type": "boolean" }, "electron": { "description": "Treat common electron built-in modules in main and preload context like 'electron', 'ipc' or 'shell' as external and load them via require() when used.", "type": "boolean" }, "electronMain": { "description": "Treat electron built-in modules in the main context like 'app', 'ipc-main' or 'shell' as external and load them via require() when used.", "type": "boolean" }, "electronPreload": { "description": "Treat electron built-in modules in the preload context like 'web-frame', 'ipc-renderer' or 'shell' as external and load them via require() when used.", "type": "boolean" }, "electronRenderer": { "description": "Treat electron built-in modules in the renderer context like 'web-frame', 'ipc-renderer' or 'shell' as external and load them via require() when used.", "type": "boolean" }, "node": { "description": "Treat node.js built-in modules like fs, path or vm as external and load them via require() when used.", "type": "boolean" }, "nodeModules": { "description": "Treat installed packages (requests resolving into a 'node_modules' directory) as external and load them via require()/import at runtime instead of bundling them (useful for server-side rendering builds).", "anyOf": [ { "description": "Enable or disable externalizing installed packages.", "type": "boolean" }, { "description": "Externalize installed packages with options.", "type": "object", "additionalProperties": false, "properties": { "allowlist": { "description": "Keep these requests bundled instead of externalizing them.", "type": "array", "items": { "description": "A request that should stay bundled.", "anyOf": [ { "description": "Requests matching the RegExp stay bundled.", "instanceof": "RegExp", "tsType": "RegExp" }, { "description": "An exact request that should stay bundled.", "type": "string" }, { "description": "A function returning true for requests that should stay bundled.", "instanceof": "Function", "tsType": "((request: string) => boolean)" } ] } } } } ] }, "nwjs": { "description": "Treat NW.js legacy nw.gui module as external and load it via require() when used.", "type": "boolean" }, "web": { "description": "Treat references to 'http(s)://...' and 'std:...' as external and load them via import when used (Note that this changes execution order as externals are executed before any other code in the chunk).", "type": "boolean" }, "webAsync": { "description": "Treat references to 'http(s)://...' and 'std:...' as external and load them via async import() when used (Note that this external type is an async module, which has various effects on the execution).", "type": "boolean" } } }, "ExternalsType": { "description": "Specifies the default type of externals ('amd*', 'umd*', 'system' and 'jsonp' depend on output.libraryTarget set to the same value).", "enum": [ "var", "module", "assign", "this", "window", "self", "global", "commonjs", "commonjs2", "commonjs-module", "commonjs-static", "amd", "amd-require", "amd-async", "umd", "umd2", "jsonp", "system", "promise", "import", "module-import", "script", "node-commonjs", "asset", "asset-url", "css-import", "css-url" ] }, "Falsy": { "description": "These values will be ignored by webpack and created to be used with '&&' or '||' to improve readability of configurations.", "cli": { "exclude": true }, "enum": [false, 0, "", null], "undefinedAsNull": true, "tsType": "false | 0 | '' | null | undefined" }, "FileCacheOptions": { "description": "Options object for persistent file-based caching.", "type": "object", "additionalProperties": false, "properties": { "allowCollectingMemory": { "description": "Allows to collect unused memory allocated during deserialization. This requires copying data into smaller buffers and has a performance cost.", "type": "boolean" }, "buildDependencies": { "description": "Dependencies the build depends on (in multiple categories, default categories: 'defaultWebpack').", "type": "object", "additionalProperties": { "description": "List of dependencies the build depends on.", "type": "array", "items": { "description": "Request to a dependency (resolved as directory relative to the context directory).", "type": "string", "minLength": 1 } } }, "cacheDirectory": { "description": "Base directory for the cache (defaults to node_modules/.cache/webpack).", "type": "string", "absolutePath": true }, "cacheLocation": { "description": "Locations for the cache (defaults to cacheDirectory / name).", "type": "string", "absolutePath": true }, "compression": { "description": "Compression type used for the cache files.", "enum": [false, "gzip", "brotli", "zstd"] }, "hashAlgorithm": { "description": "Algorithm used for generation the hash (see node.js crypto package).", "type": "string" }, "idleTimeout": { "description": "Time in ms after which idle period the cache storing should happen.", "type": "number", "minimum": 0 }, "idleTimeoutAfterLargeChanges": { "description": "Time in ms after which idle period the cache storing should happen when larger changes has been detected (cumulative build time > 2 x avg cache store time).", "type": "number", "minimum": 0 }, "idleTimeoutForInitialStore": { "description": "Time in ms after which idle period the initial cache storing should happen.", "type": "number", "minimum": 0 }, "immutablePaths": { "description": "List of paths that are managed by a package manager and contain a version or hash in its path so all files are immutable.", "type": "array", "items": { "description": "List of paths that are managed by a package manager and contain a version or hash in its path so all files are immutable.", "anyOf": [ { "description": "A RegExp matching an immutable directory (usually a package manager cache directory, including the tailing slash)", "instanceof": "RegExp", "tsType": "RegExp" }, { "description": "A path to an immutable directory (usually a package manager cache directory).", "type": "string", "absolutePath": true } ] } }, "managedPaths": { "description": "List of paths that are managed by a package manager and can be trusted to not be modified otherwise.", "type": "array", "items": { "description": "List of paths that are managed by a package manager and can be trusted to not be modified otherwise.", "anyOf": [ { "description": "A RegExp matching a managed directory (usually a node_modules directory, including the tailing slash)", "instanceof": "RegExp", "tsType": "RegExp" }, { "description": "A path to a managed directory (usually a node_modules directory).", "type": "string", "absolutePath": true } ] } }, "maxAge": { "description": "Time for which unused cache entries stay in the filesystem cache at minimum (in milliseconds).", "type": "number", "minimum": 0 }, "maxMemoryGenerations": { "description": "Number of generations unused cache entries stay in memory cache at minimum (0 = no memory cache used, 1 = may be removed after unused for a single compilation, ..., Infinity: kept forever). Cache entries will be deserialized from disk when removed from memory cache.", "type": "number", "minimum": 0 }, "memoryCacheUnaffected": { "description": "Additionally cache computation of modules that are unchanged and reference only unchanged modules in memory.", "type": "boolean" }, "name": { "description": "Name for the cache. Different names will lead to different coexisting caches.", "type": "string" }, "profile": { "description": "Track and log detailed timing information for individual cache items.", "type": "boolean" }, "readonly": { "description": "Enable/disable readonly mode.", "type": "boolean" }, "store": { "description": "When to store data to the filesystem. (pack: Store data when compiler is idle in a single file).", "enum": ["pack"] }, "type": { "description": "Filesystem caching.", "enum": ["filesystem"] }, "version": { "description": "Version of the cache data. Different versions won't allow to reuse the cache and override existing content. Update the version when config changed in a way which doesn't allow to reuse cache. This will invalidate the cache.", "type": "string" } }, "required": ["type"] }, "Filename": { "description": "Specifies the filename of output files on disk. You must **not** specify an absolute path here, but the path may contain folders separated by '/'! The specified path is joined with the value of the 'output.path' option to determine the location on disk.", "oneOf": [ { "$ref": "#/definitions/FilenameTemplate" } ] }, "FilenameTemplate": { "description": "Specifies the filename template of output files on disk. You must **not** specify an absolute path here, but the path may contain folders separated by '/'! The specified path is joined with the value of the 'output.path' option to determine the location on disk.", "anyOf": [ { "type": "string", "absolutePath": false, "minLength": 1 }, { "instanceof": "Function", "tsType": "import(\"../lib/TemplatedPathPlugin\").TemplatePathFn" } ] }, "FilterItemTypes": { "description": "Filtering value, regexp or function.", "cli": { "helper": true }, "anyOf": [ { "instanceof": "RegExp", "tsType": "RegExp" }, { "type": "string", "absolutePath": false }, { "instanceof": "Function", "tsType": "import('../lib/stats/DefaultStatsFactoryPlugin').FilterItemTypeFn" } ] }, "FilterTypes": { "description": "Filtering values.", "cli": { "helper": true }, "anyOf": [ { "type": "array", "items": { "description": "Rule to filter.", "cli": { "helper": true }, "oneOf": [ { "$ref": "#/definitions/FilterItemTypes" } ] } }, { "$ref": "#/definitions/FilterItemTypes" } ] }, "GeneratorOptionsByModuleType": { "description": "Specify options for each generator.", "type": "object", "additionalProperties": { "description": "Options for generating.", "type": "object", "additionalProperties": true }, "properties": { "asset": { "$ref": "#/definitions/AssetGeneratorOptions" }, "asset/bytes": { "$ref": "#/definitions/EmptyGeneratorOptions" }, "asset/inline": { "$ref": "#/definitions/AssetInlineGeneratorOptions" }, "asset/resource": { "$ref": "#/definitions/AssetResourceGeneratorOptions" }, "asset/source": { "$ref": "#/definitions/EmptyGeneratorOptions" }, "css": { "$ref": "#/definitions/CssGeneratorOptions" }, "css/auto": { "$ref": "#/definitions/CssModuleGeneratorOptions" }, "css/global": { "$ref": "#/definitions/CssModuleGeneratorOptions" }, "css/module": { "$ref": "#/definitions/CssModuleGeneratorOptions" }, "html": { "$ref": "#/definitions/HtmlGeneratorOptions" }, "javascript": { "$ref": "#/definitions/EmptyGeneratorOptions" }, "javascript/auto": { "$ref": "#/definitions/EmptyGeneratorOptions" }, "javascript/dynamic": { "$ref": "#/definitions/EmptyGeneratorOptions" }, "javascript/esm": { "$ref": "#/definitions/EmptyGeneratorOptions" }, "json": { "$ref": "#/definitions/JsonGeneratorOptions" } } }, "GlobalObject": { "description": "An expression which is used to address the global object/scope in runtime code.", "type": "string", "minLength": 1 }, "HashDigest": { "description": "Digest types used for the hash.", "type": "string" }, "HashDigestLength": { "description": "Number of chars which are used for the hash.", "type": "number", "minimum": 1 }, "HashFunction": { "description": "Algorithm used for generation the hash (see node.js crypto package).", "anyOf": [ { "type": "string", "minLength": 1 }, { "instanceof": "Function", "tsType": "typeof import('../lib/util/Hash')" } ] }, "HashSalt": { "description": "Any string which is added to the hash to salt it.", "type": "string", "minLength": 1 }, "HotUpdateChunkFilename": { "description": "The filename of the Hot Update Chunks. They are inside the output.path directory.", "type": "string", "absolutePath": false }, "HotUpdateGlobal": { "description": "The global variable used by webpack for loading of hot update chunks.", "type": "string" }, "HotUpdateMainFilename": { "description": "The filename of the Hot Update Main File. It is inside the 'output.path' directory.", "type": "string", "absolutePath": false }, "HtmlChunkFilename": { "description": "Specifies the filename template of non-initial output html files on disk. You must **not** specify an absolute path here, but the path may contain folders separated by '/'! The specified path is joined with the value of the 'output.path' option to determine the location on disk.", "oneOf": [ { "$ref": "#/definitions/FilenameTemplate" } ] }, "HtmlFaviconIcon": { "description": "A single favicon ``: either a path string (used as the icon `href`) or an object with the icon `href` plus extra link attributes (`sizes`, `media`, `color`, `type`, `crossorigin`).", "anyOf": [ { "type": "string", "minLength": 1 }, { "type": "object", "additionalProperties": false, "properties": { "color": { "description": "Value for the `color` attribute (used by `rel=\"mask-icon\"`).", "type": "string", "minLength": 1 }, "crossorigin": { "description": "Value for the `crossorigin` attribute.", "enum": ["anonymous", "use-credentials"] }, "href": { "description": "Path to the icon file, emitted as a hashed asset.", "type": "string", "minLength": 1 }, "media": { "description": "Value for the `media` attribute (e.g. `\"(prefers-color-scheme: dark)\"`).", "type": "string", "minLength": 1 }, "sizes": { "description": "Value for the `sizes` attribute (e.g. `\"180x180\"` or `\"any\"`).", "type": "string", "minLength": 1 }, "type": { "description": "Value for the `type` attribute; inferred from the file extension when omitted.", "type": "string", "minLength": 1 } }, "required": ["href"] } ] }, "HtmlFilename": { "description": "Specifies the filename template of output html files on disk. You must **not** specify an absolute path here, but the path may contain folders separated by '/'! The specified path is joined with the value of the 'output.path' option to determine the location on disk.", "oneOf": [ { "$ref": "#/definitions/FilenameTemplate" } ] }, "HtmlGeneratorOptions": { "description": "Generator options for html modules.", "type": "object", "additionalProperties": false, "properties": { "extract": { "description": "Emit the parsed and URL-rewritten HTML as a standalone `.html` output file alongside the module's JavaScript export. `true` always emits the file; `false` never does; `\"inline\"` exposes the processed HTML for inline write-back (e.g. `