{ "additionalProperties": false, "definitions": { "common.arrayOfStringOrStringArrayValues": { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "items": { "minLength": 1, "type": "string" }, "type": "array" } ] }, "type": "array" }, "common.arrayOfStringValues": { "items": { "minLength": 1, "type": "string" }, "type": "array" }, "common.nonEmptyArrayOfUniqueStringValues": { "items": { "minLength": 1, "type": "string" }, "minItems": 1, "type": "array", "uniqueItems": true }, "entry": { "description": "The entry point(s) of the compilation.", "oneOf": [ { "minProperties": 1, "additionalProperties": { "oneOf": [ { "description": "The string is resolved to a module which is loaded upon startup.", "minLength": 1, "type": "string" }, { "description": "All modules are loaded upon startup. The last one is exported.", "$ref": "#/definitions/common.nonEmptyArrayOfUniqueStringValues" } ] }, "description": "Multiple entry bundles are created. The key is the chunk name. The value can be a string or an array.", "type": "object" }, { "description": "The string is resolved to a module which is loaded upon startup.", "minLength": 1, "type": "string" }, { "allOf": [ { "$ref": "#/definitions/common.nonEmptyArrayOfUniqueStringValues" } ], "description": "All modules are loaded upon startup. The last one is exported." }, { "description": "function returning an entry object or a promise.", "instanceof": "Function" } ] }, "externals": { "anyOf": [ { "description": "An exact matched dependency becomes external. The same string is used as external dependency.", "type": "string" }, { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "object" }, { "type": "boolean" } ] }, "description": "If an dependency matches exactly a property of the object, the property value is used as dependency.", "type": "object" }, { "description": "`function(context, request, callback(err, result))` The function is called on each dependency.", "instanceof": "Function" }, { "description": "Every matched dependency becomes external.", "instanceof": "RegExp" }, { "items": { "$ref": "#/definitions/externals" }, "type": "array" } ], "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`." }, "module": { "additionalProperties": false, "description": "Options affecting the normal modules (`NormalModuleFactory`).", "properties": { "exprContextCritical": { "type": "boolean" }, "exprContextRecursive": { "type": "boolean" }, "exprContextRegExp": { "anyOf": [ { "type": "boolean" }, { "instanceof": "RegExp" } ] }, "exprContextRequest": { "type": "string" }, "loaders": { "allOf": [ { "$ref": "#/definitions/ruleSet-rules" } ], "description": "An array of automatically applied loaders." }, "noParse": { "description": "Don't parse files matching. It's matched against the full resolved request.", "anyOf": [ { "items": { "instanceof": "RegExp" }, "minItems": 1, "type": "array" }, { "instanceof": "RegExp" }, { "instanceof": "Function" }, { "items": { "type": "string", "absolutePath": true }, "minItems": 1, "type": "array" }, { "type": "string", "absolutePath": true } ] }, "rules": { "allOf": [ { "$ref": "#/definitions/ruleSet-rules" } ], "description": "An array of rules applied for modules." }, "unknownContextCritical": { "type": "boolean" }, "unknownContextRecursive": { "type": "boolean" }, "unknownContextRegExp": { "anyOf": [ { "type": "boolean" }, { "instanceof": "RegExp" } ] }, "unknownContextRequest": { "type": "string" }, "unsafeCache": { "anyOf": [ { "type": "boolean" }, { "instanceof": "Function" } ] }, "wrappedContextCritical": { "type": "boolean" }, "wrappedContextRecursive": { "type": "boolean" }, "wrappedContextRegExp": { "instanceof": "RegExp" }, "strictExportPresence": { "type": "boolean" }, "strictThisContextOnImports": { "type": "boolean" } }, "type": "object" }, "output": { "additionalProperties": false, "description": "Options affecting the output of the compilation. `output` options tell webpack how to write the compiled files to disk.", "properties": { "auxiliaryComment": { "description": "Add a comment in the UMD wrapper.", "anyOf": [ { "description": "Append the same comment above each import style.", "type": "string" }, { "additionalProperties": false, "description": "Set explicit comments for `commonjs`, `commonjs2`, `amd`, and `root`.", "properties": { "amd": { "type": "string" }, "commonjs": { "type": "string" }, "commonjs2": { "type": "string" }, "root": { "type": "string" } }, "type": "object" } ] }, "chunkFilename": { "description": "The filename of non-entry chunks as relative path inside the `output.path` directory.", "type": "string", "absolutePath": false }, "crossOriginLoading": { "description": "This option enables cross-origin loading of chunks.", "enum": [ false, "anonymous", "use-credentials" ] }, "chunkLoadTimeout": { "description": "Number of milliseconds before chunk request expires", "type": "number" }, "devtoolFallbackModuleFilenameTemplate": { "description": "Similar to `output.devtoolModuleFilenameTemplate`, but used in the case of duplicate module identifiers.", "anyOf": [ { "type": "string" }, { "instanceof": "Function" } ] }, "devtoolLineToLine": { "description": "Enable line to line mapped mode for all/specified modules. Line to line mapped mode uses a simple SourceMap where each line of the generated source is mapped to the same line of the original source. It’s a performance optimization. Only use it if your performance need to be better and you are sure that input lines match which generated lines.", "anyOf": [ { "description": "`true` enables it for all modules (not recommended)", "type": "boolean" }, { "description": "An object similar to `module.loaders` enables it for specific files.", "properties": { "exclude": { "type": "string" }, "include": { "type": "string" }, "test": { "type": "string" } }, "type": "object" } ] }, "devtoolModuleFilenameTemplate": { "description": "Filename template string of function for the sources array in a generated SourceMap.", "anyOf": [ { "type": "string" }, { "instanceof": "Function" } ] }, "filename": { "description": "Specifies the name of each output file on disk. You must **not** specify an absolute path here! The `output.path` option determines the location on disk the files are written to, filename is used solely for naming the individual files.", "type": "string", "absolutePath": false }, "hashDigest": { "minLength": 1, "type": "string" }, "hashDigestLength": { "minimum": 1, "type": "number" }, "hashFunction": { "minLength": 1, "type": "string" }, "hashSalt": { "minLength": 1, "type": "string" }, "hotUpdateChunkFilename": { "description": "The filename of the Hot Update Chunks. They are inside the output.path directory.", "type": "string", "absolutePath": false }, "hotUpdateFunction": { "description": "The JSONP function used by webpack for async 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 }, "jsonpFunction": { "description": "The JSONP function used by webpack for async loading of chunks.", "type": "string" }, "library": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" }, { "type": "object", "properties": { "root": { "type": "string" }, "amd": { "type": "string" }, "commonjs": { "type": "string" } } } ], "description": "If set, export the bundle as library. `output.library` is the name." }, "libraryTarget": { "enum": [ "var", "assign", "this", "window", "global", "commonjs", "commonjs2", "commonjs-module", "amd", "umd", "umd2", "jsonp" ] }, "libraryExport": { "anyOf": [ { "type": "string" }, { "$ref": "#/definitions/common.arrayOfStringValues" } ] }, "path": { "description": "The output directory as **absolute path** (required).", "type": "string", "absolutePath": true }, "pathinfo": { "description": "Include comments with information about the modules.", "type": "boolean" }, "publicPath": { "description": "The `publicPath` specifies the public URL address of the output files when referenced in a browser.", "type": "string" }, "sourceMapFilename": { "description": "The filename of the SourceMaps for the JavaScript files. They are inside the `output.path` directory.", "type": "string", "absolutePath": false }, "sourcePrefix": { "description": "Prefixes every line of the source in the bundle with this string.", "type": "string" }, "strictModuleExceptionHandling": { "description": "Handles exceptions in module loading correctly at a performance cost.", "type": "boolean" }, "umdNamedDefine": { "description": "If `output.libraryTarget` is set to umd and `output.library` is set, setting this to true will name the AMD module.", "type": "boolean" } }, "type": "object" }, "resolve": { "additionalProperties": false, "properties": { "alias": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "items": { "additionalProperties": false, "properties": { "alias": { "type": "string" }, "name": { "type": "string" }, "onlyModule": { "type": "boolean" } }, "type": "object" }, "type": "array" } ] }, "aliasFields": { "$ref": "#/definitions/common.arrayOfStringOrStringArrayValues" }, "cachePredicate": { "instanceof": "Function" }, "cacheWithContext": { "type": "boolean" }, "descriptionFiles": { "$ref": "#/definitions/common.arrayOfStringValues" }, "enforceExtension": { "type": "boolean" }, "enforceModuleExtension": { "type": "boolean" }, "extensions": { "$ref": "#/definitions/common.arrayOfStringValues" }, "fileSystem": {}, "mainFields": { "$ref": "#/definitions/common.arrayOfStringOrStringArrayValues" }, "mainFiles": { "$ref": "#/definitions/common.arrayOfStringValues" }, "moduleExtensions": { "$ref": "#/definitions/common.arrayOfStringValues" }, "modules": { "$ref": "#/definitions/common.arrayOfStringValues" }, "plugins": { "type": "array" }, "resolver": {}, "symlinks": { "type": "boolean" }, "unsafeCache": { "anyOf": [ { "type": "boolean" }, { "additionalProperties": true, "type": "object" } ] }, "useSyncFileSystemCalls": { "type": "boolean" } }, "type": "object" }, "ruleSet-condition": { "anyOf": [ { "instanceof": "RegExp" }, { "minLength": 1, "type": "string" }, { "instanceof": "Function" }, { "$ref": "#/definitions/ruleSet-conditions" }, { "additionalProperties": false, "properties": { "and": { "$ref": "#/definitions/ruleSet-conditions" }, "exclude": { "$ref": "#/definitions/ruleSet-condition" }, "include": { "$ref": "#/definitions/ruleSet-condition" }, "not": { "$ref": "#/definitions/ruleSet-conditions" }, "or": { "$ref": "#/definitions/ruleSet-conditions" }, "test": { "$ref": "#/definitions/ruleSet-condition" } }, "type": "object" } ] }, "ruleSet-conditions": { "items": { "$ref": "#/definitions/ruleSet-condition" }, "type": "array" }, "ruleSet-loader": { "minLength": 1, "type": "string" }, "ruleSet-query": { "anyOf": [ { "type": "object" }, { "type": "string" } ] }, "ruleSet-rule": { "additionalProperties": false, "properties": { "enforce": { "enum": [ "pre", "post" ] }, "exclude": { "allOf": [ { "$ref": "#/definitions/ruleSet-condition" }, { "absolutePath": true } ] }, "include": { "allOf": [ { "$ref": "#/definitions/ruleSet-condition" }, { "absolutePath": true } ] }, "issuer": { "allOf": [ { "$ref": "#/definitions/ruleSet-condition" }, { "absolutePath": true } ] }, "loader": { "anyOf": [ { "$ref": "#/definitions/ruleSet-loader" }, { "$ref": "#/definitions/ruleSet-use" } ] }, "loaders": { "$ref": "#/definitions/ruleSet-use" }, "oneOf": { "$ref": "#/definitions/ruleSet-rules" }, "options": { "$ref": "#/definitions/ruleSet-query" }, "parser": { "additionalProperties": true, "type": "object" }, "query": { "$ref": "#/definitions/ruleSet-query" }, "resource": { "allOf": [ { "$ref": "#/definitions/ruleSet-condition" }, { "absolutePath": true } ] }, "resourceQuery": { "$ref": "#/definitions/ruleSet-condition" }, "compiler": { "$ref": "#/definitions/ruleSet-condition" }, "rules": { "$ref": "#/definitions/ruleSet-rules" }, "test": { "allOf": [ { "$ref": "#/definitions/ruleSet-condition" }, { "absolutePath": true } ] }, "use": { "$ref": "#/definitions/ruleSet-use" } }, "type": "object" }, "ruleSet-rules": { "items": { "$ref": "#/definitions/ruleSet-rule" }, "type": "array" }, "ruleSet-use": { "anyOf": [ { "$ref": "#/definitions/ruleSet-use-item" }, { "instanceof": "Function" }, { "items": { "$ref": "#/definitions/ruleSet-use-item" }, "type": "array" } ] }, "ruleSet-use-item": { "anyOf": [ { "$ref": "#/definitions/ruleSet-loader" }, { "instanceof": "Function" }, { "additionalProperties": false, "properties": { "loader": { "$ref": "#/definitions/ruleSet-loader" }, "options": { "$ref": "#/definitions/ruleSet-query" }, "query": { "$ref": "#/definitions/ruleSet-query" } }, "type": "object" } ] }, "filter-item-types": { "anyOf": [ { "instanceof": "RegExp" }, { "type": "string" }, { "instanceof": "Function" } ] }, "filter-types": { "anyOf": [ { "$ref": "#/definitions/filter-item-types" }, { "type": "array", "items": { "$ref": "#/definitions/filter-item-types" } } ] } }, "properties": { "amd": { "description": "Set the value of `require.amd` and `define.amd`." }, "bail": { "description": "Report the first error as a hard error instead of tolerating it.", "type": "boolean" }, "cache": { "description": "Cache generated modules and chunks to improve performance for multiple incremental builds.", "anyOf": [ { "description": "You can pass `false` to disable it.", "type": "boolean" }, { "description": "You can pass an object to enable it and let webpack use the passed object as cache. This way you can share the cache object between multiple compiler calls.", "type": "object" } ] }, "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 }, "dependencies": { "description": "References to other configurations to depend on.", "items": { "type": "string" }, "type": "array" }, "devServer": { "type": "object" }, "devtool": { "description": "A developer tool to enhance debugging.", "anyOf": [ { "type": "string" }, { "enum": [ false ] } ] }, "entry": { "$ref": "#/definitions/entry" }, "externals": { "$ref": "#/definitions/externals" }, "loader": { "description": "Custom values available in the loader context.", "type": "object" }, "module": { "$ref": "#/definitions/module" }, "name": { "description": "Name of the configuration. Used when loading multiple configurations.", "type": "string" }, "node": { "description": "Include polyfills or mocks for various node stuff.", "anyOf": [ { "enum": [ false ] }, { "additionalProperties": { "enum": [ false, true, "mock", "empty" ] }, "properties": { "Buffer": { "enum": [ false, true, "mock" ] }, "__dirname": { "enum": [ false, true, "mock" ] }, "__filename": { "enum": [ false, true, "mock" ] }, "console": { "enum": [ false, true, "mock" ] }, "global": { "type": "boolean" }, "process": { "enum": [ false, true, "mock" ] } }, "type": "object" } ] }, "output": { "$ref": "#/definitions/output" }, "parallelism": { "description": "The number of parallel processed modules in the compilation.", "minimum": 1, "type": "number" }, "performance": { "description": "Configuration for web performance recommendations.", "anyOf": [ { "enum": [ false ] }, { "additionalProperties": false, "properties": { "assetFilter": { "description": "Filter function to select assets that are checked", "instanceof": "Function" }, "hints": { "description": "Sets the format of the hints: warnings, errors or nothing at all", "enum": [ false, "warning", "error" ] }, "maxEntrypointSize": { "description": "Total size of an entry point (in bytes)", "type": "number" }, "maxAssetSize": { "description": "Filesize limit (in bytes) when exceeded, that webpack will provide performance hints", "type": "number" } }, "type": "object" } ] }, "plugins": { "description": "Add additional plugins to the compiler.", "type": "array" }, "profile": { "description": "Capture timing information for each module.", "type": "boolean" }, "recordsInputPath": { "description": "Store compiler state to a json file.", "type": "string", "absolutePath": true }, "recordsOutputPath": { "description": "Load compiler state from a json file.", "type": "string", "absolutePath": true }, "recordsPath": { "description": "Store/Load compiler state from/to a json file. This will result in persistent ids of modules and chunks. An absolute path is expected. `recordsPath` is used for `recordsInputPath` and `recordsOutputPath` if they left undefined.", "type": "string", "absolutePath": true }, "resolve": { "$ref": "#/definitions/resolve" }, "resolveLoader": { "$ref": "#/definitions/resolve" }, "stats": { "description": "Used by the webpack CLI program to pass stats options.", "anyOf": [ { "type": "object", "properties": { "context": { "type": "string", "description": "context directory for request shortening", "absolutePath": true }, "hash": { "type": "boolean", "description": "add the hash of the compilation" }, "version": { "type": "boolean", "description": "add webpack version information" }, "timings": { "type": "boolean", "description": "add timing information" }, "assets": { "type": "boolean", "description": "add assets information" }, "chunks": { "type": "boolean", "description": "add chunk information" }, "chunkModules": { "type": "boolean", "description": "add built modules information to chunk information" }, "modules": { "type": "boolean", "description": "add built modules information" }, "children": { "type": "boolean", "description": "add children information" }, "cached": { "type": "boolean", "description": "add also information about cached (not built) modules" }, "reasons": { "type": "boolean", "description": "add information about the reasons why modules are included" }, "source": { "type": "boolean", "description": "add the source code of modules" }, "warningsFilter": { "description": "Suppress warnings that match the specified filters. Filters can be Strings, RegExps or Functions", "$ref": "#/definitions/filter-types" }, "excludeAssets": { "description": "Suppress assets that match the specified filters. Filters can be Strings, RegExps or Functions", "$ref": "#/definitions/filter-types" }, "excludeModules": { "description": "Suppress modules that match the specified filters. Filters can be Strings, RegExps or Functions", "$ref": "#/definitions/filter-types" }, "exclude": { "description": "Please use excludeModules instead.", "$ref": "#/definitions/filter-types" }, "errorDetails": { "type": "boolean", "description": "add details to errors (like resolving log)" }, "chunkOrigins": { "type": "boolean", "description": "add the origins of chunks and chunk merging info" }, "modulesSort": { "type": "string", "description": "sort the modules by that field" }, "moduleTrace": { "type": "boolean", "description": "add dependencies and origin of warnings/errors" }, "chunksSort": { "type": "string", "description": "sort the chunks by that field" }, "assetsSort": { "type": "string", "description": "sort the assets by that field" }, "providedExports": { "type": "boolean", "description": "show exports provided by modules" }, "usedExports": { "type": "boolean", "description": "show exports used by modules" }, "optimizationBailout": { "type": "boolean", "description": "show reasons why optimization bailed out for modules" } } }, { "type": "boolean" }, { "enum": [ "none", "errors-only", "minimal", "normal", "detailed", "verbose" ] } ] }, "target": { "anyOf": [ { "enum": [ "web", "webworker", "node", "async-node", "node-webkit", "atom", "electron", "electron-main", "electron-renderer" ] }, { "instanceof": "Function" } ] }, "watch": { "description": "Enter watch mode, which rebuilds on file change.", "type": "boolean" }, "watchOptions": { "properties": { "aggregateTimeout": { "description": "Delay the rebuilt after the first change. Value is a time in ms.", "type": "number" }, "poll": { "anyOf": [ { "description": "`true`: use polling.", "type": "boolean" }, { "description": "`number`: use polling with specified interval.", "type": "number" } ] } }, "type": "object" } }, "required": [ "entry" ], "type": "object" }