2018-05-08 12:04:57 +08:00
/ * *
2018-09-18 19:57:44 +08:00
* This file was automatically generated .
* DO NOT MODIFY BY HAND .
* Run ` yarn special-lint-fix ` to update
2018-05-08 12:04:57 +08:00
* /
2018-09-18 19:57:44 +08:00
/ * *
2020-02-17 17:27:46 +08:00
* Set the value of ` require.amd ` and ` define.amd ` . Or disable AMD support .
* /
export type Amd =
| false
| {
[ k : string ] : any ;
} ;
/ * *
* Report the first error as a hard error instead of tolerating it .
* /
export type Bail = boolean ;
/ * *
* Cache generated module s and chunks to improve performance for multiple incremental builds .
* /
export type Cache = CacheNormalized | true ;
/ * *
* Cache generated module s and chunks to improve performance for multiple incremental builds .
* /
export type CacheNormalized = false | MemoryCacheOptions | FileCacheOptions ;
/ * *
* The base directory ( absolute path ! ) for resolving the ` entry ` option . If ` output.pathinfo ` is set , the included pathinfo is shortened to this directory .
* /
export type Context = string ;
/ * *
* References to other configurations to depend on .
* /
export type Dependencies = string [ ] ;
/ * *
* A developer tool to enhance debugging ( false | eval | [ inline - | hidden - | eval - ] [ nosources - ] [ cheap - [ module - ] ] source - map ) .
* /
export type DevTool = ( false | "eval" ) | string ;
/ * *
* The entry point ( s ) of the compilation .
2018-09-18 19:57:44 +08:00
* /
2018-09-19 18:59:48 +08:00
export type Entry = EntryDynamic | EntryStatic ;
/ * *
* A Function returning an entry object , an entry string , an entry array or a promise to these things .
* /
2019-02-05 17:06:32 +08:00
export type EntryDynamic = ( ) = > EntryStatic | Promise < EntryStatic > ;
2018-09-19 18:59:48 +08:00
/ * *
2020-02-17 19:14:51 +08:00
* A static entry description
2018-09-19 18:59:48 +08:00
* /
2020-02-05 04:21:42 +08:00
export type EntryStatic = EntryObject | EntryUnnamed ;
/ * *
2020-02-17 19:14:51 +08:00
* Module ( s ) that are loaded upon startup
2020-02-05 04:21:42 +08:00
* /
export type EntryItem = string | NonEmptyArrayOfUniqueStringValues ;
2018-09-18 19:57:44 +08:00
/ * *
2019-05-21 17:27:45 +08:00
* A non - empty array of non - empty strings
2018-09-18 19:57:44 +08:00
* /
2019-11-15 17:20:45 +08:00
export type NonEmptyArrayOfUniqueStringValues = [ string , . . . string [ ] ] ;
2020-02-26 20:08:05 +08:00
/ * *
* 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 .
* /
export type Filename =
| string
| ( (
pathData : import ( "../lib/Compilation" ) . PathData ,
assetInfo? : import ( "../lib/Compilation" ) . AssetInfo
) = > string ) ;
2018-09-19 18:59:48 +08:00
/ * *
2020-02-05 04:21:42 +08:00
* An entry point without name .
2018-09-19 18:59:48 +08:00
* /
2020-02-05 04:21:42 +08:00
export type EntryUnnamed = EntryItem ;
2018-09-18 19:57:44 +08:00
/ * *
2020-02-17 17:27:46 +08:00
* 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 ` .
2018-09-18 19:57:44 +08:00
* /
2018-09-19 18:59:48 +08:00
export type Externals =
| ( (
context : string ,
request : string ,
callback : ( err? : Error , result? : string ) = > void
) = > void )
| ExternalItem
| (
| ( (
context : string ,
request : string ,
callback : ( err? : Error , result? : string ) = > void
) = > void )
2019-11-15 17:20:45 +08:00
| ExternalItem
) [ ] ;
2018-09-18 21:17:44 +08:00
/ * *
2020-02-17 19:14:51 +08:00
* 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 ` .
2018-09-18 21:17:44 +08:00
* /
export type ExternalItem =
2018-05-08 12:04:57 +08:00
| string
| {
/ * *
* The dependency used for the external
* /
[ k : string ] :
| string
| {
[ k : string ] : any ;
}
2018-09-19 16:37:53 +08:00
| ArrayOfStringValues
2018-05-08 12:04:57 +08:00
| boolean ;
}
2018-09-21 14:39:15 +08:00
| RegExp ;
2018-09-18 19:57:44 +08:00
/ * *
2020-02-17 19:14:51 +08:00
* Array of strings
2018-09-18 19:57:44 +08:00
* /
2018-09-19 16:37:53 +08:00
export type ArrayOfStringValues = string [ ] ;
2020-02-18 17:44:55 +08:00
/ * *
* Specifies the default type of externals ( 'amd*' , 'umd*' , 'system' and 'jsonp' depend on output . libraryTarget set to the same value )
* /
export type ExternalsType =
| "var"
| "module"
| "assign"
| "this"
| "window"
| "self"
| "global"
| "commonjs"
| "commonjs2"
| "commonjs-module"
| "amd"
| "amd-require"
| "umd"
| "umd2"
| "jsonp"
| "system" ;
2019-07-22 14:23:40 +08:00
/ * *
2020-02-17 19:14:51 +08:00
* Filtering values
2019-07-22 14:23:40 +08:00
* /
export type FilterTypes = FilterItemTypes | FilterItemTypes [ ] ;
/ * *
2020-02-17 19:14:51 +08:00
* Filtering value , regexp or function
2019-07-22 14:23:40 +08:00
* /
export type FilterItemTypes = RegExp | string | ( ( value : string ) = > boolean ) ;
2020-02-17 17:27:46 +08:00
/ * *
* Enable production optimizations or development hints .
* /
export type Mode = "development" | "production" | "none" ;
2018-09-18 21:17:44 +08:00
/ * *
* One or multiple rule conditions
* /
export type RuleSetConditionOrConditions = RuleSetCondition | RuleSetConditions ;
2018-09-18 19:57:44 +08:00
/ * *
2020-02-17 19:14:51 +08:00
* A condition matcher
2018-09-18 19:57:44 +08:00
* /
2018-05-08 12:04:57 +08:00
export type RuleSetCondition =
2018-09-21 14:39:15 +08:00
| RegExp
2018-05-08 12:04:57 +08:00
| string
2018-09-21 17:00:44 +08:00
| ( ( value : string ) = > boolean )
2018-09-21 14:39:15 +08:00
| RuleSetConditions
2018-05-08 12:04:57 +08:00
| {
/ * *
* Logical AND
* /
and? : RuleSetConditions ;
/ * *
* Exclude all module s matching any of these conditions
* /
2018-09-18 21:17:44 +08:00
exclude? : RuleSetConditionOrConditions ;
2018-05-08 12:04:57 +08:00
/ * *
* Exclude all module s matching not any of these conditions
* /
2018-09-18 21:17:44 +08:00
include? : RuleSetConditionOrConditions ;
2018-05-08 12:04:57 +08:00
/ * *
* Logical NOT
* /
not? : RuleSetConditions ;
/ * *
* Logical OR
* /
or? : RuleSetConditions ;
/ * *
* Exclude all module s matching any of these conditions
* /
2018-09-18 21:17:44 +08:00
test? : RuleSetConditionOrConditions ;
2018-05-08 12:04:57 +08:00
} ;
2018-09-18 19:57:44 +08:00
/ * *
2020-02-17 19:14:51 +08:00
* A list of rule conditions
2018-09-18 19:57:44 +08:00
* /
2019-11-28 23:19:18 +08:00
export type RuleSetConditions = RuleSetCondition [ ] ;
2018-09-21 17:00:44 +08:00
/ * *
2020-02-17 19:14:51 +08:00
* One or multiple rule conditions matching an absolute path
2018-09-21 17:00:44 +08:00
* /
export type RuleSetConditionOrConditionsAbsolute =
| RuleSetConditionAbsolute
| RuleSetConditionsAbsolute ;
/ * *
2020-02-17 19:14:51 +08:00
* A condition matcher matching an absolute path
2018-09-21 17:00:44 +08:00
* /
export type RuleSetConditionAbsolute =
| RegExp
| string
| ( ( value : string ) = > boolean )
| RuleSetConditionsAbsolute
| {
/ * *
* Logical AND
* /
and? : RuleSetConditionsAbsolute ;
/ * *
* Exclude all module s matching any of these conditions
* /
exclude? : RuleSetConditionOrConditionsAbsolute ;
/ * *
* Exclude all module s matching not any of these conditions
* /
include? : RuleSetConditionOrConditionsAbsolute ;
/ * *
* Logical NOT
* /
not? : RuleSetConditionsAbsolute ;
/ * *
* Logical OR
* /
or? : RuleSetConditionsAbsolute ;
/ * *
* Exclude all module s matching any of these conditions
* /
test? : RuleSetConditionOrConditionsAbsolute ;
} ;
/ * *
2020-02-17 19:14:51 +08:00
* A list of rule conditions matching an absolute path
2018-09-21 17:00:44 +08:00
* /
2019-11-28 23:19:18 +08:00
export type RuleSetConditionsAbsolute = RuleSetConditionAbsolute [ ] ;
2018-09-18 19:57:44 +08:00
/ * *
2020-02-17 19:14:51 +08:00
* A loader request
2018-09-18 19:57:44 +08:00
* /
2018-05-08 12:04:57 +08:00
export type RuleSetLoader = string ;
2018-09-18 19:57:44 +08:00
/ * *
2020-02-17 19:14:51 +08:00
* A list of descriptions of loaders applied
2018-09-18 19:57:44 +08:00
* /
2019-05-16 17:31:41 +08:00
export type RuleSetUse =
| RuleSetUseItem
| ( ( data : object ) = > RuleSetUseItem [ ] )
| RuleSetUseItem [ ] ;
2018-09-18 19:57:44 +08:00
/ * *
2020-02-17 19:14:51 +08:00
* A description of an applied loader
2018-09-18 19:57:44 +08:00
* /
2018-05-08 12:04:57 +08:00
export type RuleSetUseItem =
| RuleSetLoader
2019-05-16 17:31:41 +08:00
| ( ( data : object ) = > RuleSetUseItem | RuleSetUseItem [ ] )
2018-05-08 12:04:57 +08:00
| {
2018-09-19 16:17:33 +08:00
/ * *
2019-05-16 17:31:41 +08:00
* Unique loader options identifier
2018-09-19 16:17:33 +08:00
* /
ident? : string ;
2018-05-08 12:04:57 +08:00
/ * *
* Loader name
* /
loader? : RuleSetLoader ;
/ * *
* Loader options
* /
2019-05-16 17:31:41 +08:00
options? : RuleSetLoaderOptions ;
2018-05-08 12:04:57 +08:00
} ;
2018-09-18 19:57:44 +08:00
/ * *
2020-02-17 19:14:51 +08:00
* Options passed to a loader
2018-09-18 19:57:44 +08:00
* /
2019-05-16 17:31:41 +08:00
export type RuleSetLoaderOptions =
2018-05-08 12:04:57 +08:00
| {
[ k : string ] : any ;
}
| string ;
2018-09-18 19:57:44 +08:00
/ * *
2020-02-17 19:14:51 +08:00
* List of string or string - array values
2018-09-18 19:57:44 +08:00
* /
2018-09-19 16:37:53 +08:00
export type ArrayOfStringOrStringArrayValues = ( string | string [ ] ) [ ] ;
2019-12-06 02:06:50 +08:00
/ * *
2020-02-17 19:14:51 +08:00
* A list of rules
2019-12-06 02:06:50 +08:00
* /
export type RuleSetRules = RuleSetRule [ ] ;
2020-02-17 17:27:46 +08:00
/ * *
* Name of the configuration . Used when loading multiple configurations .
* /
export type Name = string ;
/ * *
* Include polyfills or mocks for various node stuff .
* /
export type Node = false | NodeOptions ;
2018-09-18 21:17:44 +08:00
/ * *
* Function acting as plugin
* /
2018-09-19 16:37:53 +08:00
export type WebpackPluginFunction = (
2018-11-22 23:15:20 +08:00
this : import ( "../lib/Compiler" ) ,
2018-09-18 21:17:44 +08:00
compiler : import ( "../lib/Compiler" )
) = > void ;
2020-02-17 17:27:46 +08:00
/ * *
* Create an additional chunk which contains only the webpack runtime and chunk hash maps
* /
export type OptimizationRuntimeChunk =
| boolean
| ( "single" | "multiple" )
| {
/ * *
* The name or name factory for the runtime chunks
* /
name? : string | Function ;
} ;
2018-12-12 17:46:44 +08:00
/ * *
2020-02-17 19:14:51 +08:00
* A function returning cache groups
2018-12-12 17:46:44 +08:00
* /
2019-02-06 22:37:11 +08:00
export type OptimizationSplitChunksGetCacheGroups = (
2018-12-12 17:46:44 +08:00
module : import ( "../lib/Module" )
) = >
| OptimizationSplitChunksCacheGroup
| OptimizationSplitChunksCacheGroup [ ]
2019-02-06 22:37:11 +08:00
| void ;
2018-12-04 23:40:06 +08:00
/ * *
2020-02-17 19:14:51 +08:00
* Size description for limits
2018-12-04 23:40:06 +08:00
* /
export type OptimizationSplitChunksSizes =
| number
| {
/ * *
* Size of the part of the chunk with the type of the key
* /
[ k : string ] : number ;
} ;
2020-02-20 03:25:49 +08:00
/ * *
* The filename of asset module s as relative path inside the ` output.path ` directory .
* /
export type AssetModuleFilename =
| string
| ( (
pathData : import ( "../lib/Compilation" ) . PathData ,
assetInfo? : import ( "../lib/Compilation" ) . AssetInfo
) = > string ) ;
/ * *
* Add a comment in the UMD wrapper .
* /
export type AuxiliaryComment = string | LibraryCustomUmdCommentObject ;
/ * *
* The callback function name used by webpack for loading of chunks in WebWorkers .
* /
export type ChunkCallbackName = string ;
/ * *
* The filename of non - entry chunks as relative path inside the ` output.path ` directory .
* /
export type ChunkFilename = string ;
/ * *
* Number of milliseconds before chunk request expires
* /
export type ChunkLoadTimeout = number ;
/ * *
* Check if to be emitted file already exists and have the same content before writing to output filesystem
* /
export type CompareBeforeEmit = boolean ;
/ * *
* This option enables cross - origin loading of chunks .
* /
export type CrossOriginLoading = false | "anonymous" | "use-credentials" ;
/ * *
* Similar to ` output.devtoolModuleFilenameTemplate ` , but used in the case of duplicate module identifiers.
* /
export type DevtoolFallbackModuleFilenameTemplate = string | Function ;
/ * *
* Filename template string of function for the sources array in a generated SourceMap .
* /
export type DevtoolModuleFilenameTemplate = string | Function ;
/ * *
* 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 .
* /
export type DevtoolNamespace = string ;
/ * *
* The maximum EcmaScript version of the webpack generated code ( doesn ' t include input source code from module s ) .
* /
export type EcmaVersion = number | 2009 ;
/ * *
* Type of library
* /
export type LibraryType =
| "var"
| "module"
| "assign"
| "this"
| "window"
| "self"
| "global"
| "commonjs"
| "commonjs2"
| "commonjs-module"
| "amd"
| "amd-require"
| "umd"
| "umd2"
| "jsonp"
| "system" ;
/ * *
* List of library types enabled for use by entry points
* /
export type EnabledLibraryTypes = LibraryType [ ] ;
/ * *
* An expression which is used to address the global object / scope in runtime code
* /
export type GlobalObject = string ;
/ * *
* Digest type used for the hash
* /
export type HashDigest = string ;
/ * *
* Number of chars which are used for the hash
* /
export type HashDigestLength = number ;
/ * *
* Algorithm used for generation the hash ( see node . js crypto package )
* /
export type HashFunction = string | typeof import ( "../lib/util/Hash" ) ;
/ * *
* Any string which is added to the hash to salt it
* /
export type HashSalt = string ;
/ * *
* The filename of the Hot Update Chunks . They are inside the output . path directory .
* /
export type HotUpdateChunkFilename = string ;
/ * *
* The JSONP function used by webpack for async loading of hot update chunks .
* /
export type HotUpdateFunction = string ;
/ * *
* The filename of the Hot Update Main File . It is inside the ` output.path ` directory .
* /
export type HotUpdateMainFilename = string ;
/ * *
* Wrap javascript code into IIFEs to avoid leaking into global scope .
* /
export type Iife = boolean ;
/ * *
* The JSONP function used by webpack for async loading of chunks .
* /
export type JsonpFunction = string ;
/ * *
* This option enables loading async chunks via a custom script type , such as script type = "module"
* /
export type JsonpScriptType = false | "text/javascript" | "module" ;
/ * *
* Make the output files a library , exporting the exports of the entry point
* /
export type Library = LibraryName | LibraryOptions ;
/ * *
* The name of the library ( some types allow unnamed libraries too )
* /
export type LibraryName = string | string [ ] | LibraryCustomUmdObject ;
/ * *
* Specify which export should be exposed as library
* /
export type LibraryExport = string | ArrayOfStringValues ;
/ * *
* If ` output.libraryTarget ` is set to umd and ` output.library ` is set , setting this to true will name the AMD module .
* /
export type UmdNamedDefine = boolean ;
/ * *
* Output javascript files as module source type .
* /
export type OutputModule = boolean ;
/ * *
* The output directory as * * absolute path * * ( required ) .
* /
export type Path = string ;
/ * *
* Include comments with information about the module s.
* /
export type Pathinfo = boolean ;
/ * *
* The ` publicPath ` specifies the public URL address of the output files when referenced in a browser .
* /
export type PublicPath =
| string
| ( (
pathData : import ( "../lib/Compilation" ) . PathData ,
assetInfo? : import ( "../lib/Compilation" ) . AssetInfo
) = > string ) ;
/ * *
* The filename of the SourceMaps for the JavaScript files . They are inside the ` output.path ` directory .
* /
export type SourceMapFilename = string ;
/ * *
* Prefixes every line of the source in the bundle with this string .
* /
export type SourcePrefix = string ;
/ * *
* Handles exceptions in module loading correctly at a performance cost .
* /
export type StrictModuleExceptionHandling = boolean ;
/ * *
* A unique name of the webpack build to avoid multiple webpack runtimes to conflict when using globals .
* /
export type UniqueName = string ;
/ * *
* The filename of WebAssembly module s as relative path inside the ` output.path ` directory .
* /
export type WebassemblyModuleFilename = string ;
2020-02-17 17:27:46 +08:00
/ * *
* The number of parallel processed module s in the compilation .
* /
export type Parallelism = number ;
/ * *
2020-02-17 19:14:51 +08:00
* Configuration for web performance recommendations
2020-02-17 17:27:46 +08:00
* /
export type Performance = false | PerformanceOptions ;
/ * *
* Add additional plugins to the compiler .
* /
export type Plugins = ( WebpackPluginInstance | WebpackPluginFunction ) [ ] ;
/ * *
* Capture timing information for each module .
* /
export type Profile = boolean ;
/ * *
* Store compiler state to a json file .
* /
export type RecordsInputPath = false | string ;
/ * *
* Load compiler state from a json file .
* /
export type RecordsOutputPath = false | string ;
/ * *
* Store / Load compiler state from / to a json file . This will result in persistent ids of module s and chunks . An absolute path is expected . ` recordsPath ` is used for ` recordsInputPath ` and ` recordsOutputPath ` if they left undefined .
* /
export type RecordsPath = false | string ;
/ * *
* Options for the resolver
* /
export type Resolve = ResolveOptions ;
/ * *
* Options for the resolver when resolving loaders
* /
export type ResolveLoader = ResolveOptions ;
/ * *
2020-02-17 19:14:51 +08:00
* Stats options object or preset name
2020-02-17 17:27:46 +08:00
* /
export type Stats =
| StatsOptions
| boolean
| (
| "none"
| "errors-only"
| "minimal"
| "normal"
| "detailed"
| "verbose"
| "errors-warnings"
) ;
/ * *
* Environment to build for
* /
export type Target =
| (
| "web"
| "webworker"
| "node"
| "async-node"
| "node-webkit"
| "electron-main"
| "electron-renderer"
| "electron-preload"
)
| ( ( compiler : import ( "../lib/Compiler" ) ) = > void ) ;
/ * *
* Enter watch mode , which rebuilds on file change .
* /
export type Watch = boolean ;
/ * *
* A Function returning a Promise resolving to a normalized entry .
* /
export type EntryDynamicNormalized = ( ) = > Promise < EntryStaticNormalized > ;
/ * *
* The entry point ( s ) of the compilation .
* /
export type EntryNormalized = EntryDynamicNormalized | EntryStaticNormalized ;
/ * *
* Create an additional chunk which contains only the webpack runtime and chunk hash maps
* /
export type OptimizationRuntimeChunkNormalized =
| false
| {
/ * *
* The name factory for the runtime chunks
* /
name? : Function ;
} ;
2018-05-08 12:04:57 +08:00
2020-02-17 19:14:51 +08:00
/ * *
* webpack options object as provided by the user
* /
2018-05-08 12:04:57 +08:00
export interface WebpackOptions {
2020-02-17 19:14:51 +08:00
/ * *
* Set the value of ` require.amd ` and ` define.amd ` . Or disable AMD support .
* /
2020-02-17 17:27:46 +08:00
amd? : Amd ;
2020-02-17 19:14:51 +08:00
/ * *
* Report the first error as a hard error instead of tolerating it .
* /
2020-02-17 17:27:46 +08:00
bail? : Bail ;
2020-02-17 19:14:51 +08:00
/ * *
* Cache generated module s and chunks to improve performance for multiple incremental builds .
* /
2020-02-17 17:27:46 +08:00
cache? : Cache ;
2020-02-17 19:14:51 +08:00
/ * *
* The base directory ( absolute path ! ) for resolving the ` entry ` option . If ` output.pathinfo ` is set , the included pathinfo is shortened to this directory .
* /
2020-02-17 17:27:46 +08:00
context? : Context ;
2020-02-17 19:14:51 +08:00
/ * *
* References to other configurations to depend on .
* /
2020-02-17 17:27:46 +08:00
dependencies? : Dependencies ;
2020-02-17 19:14:51 +08:00
/ * *
* Options for the webpack - dev - server
* /
2020-02-17 17:27:46 +08:00
devServer? : DevServer ;
2020-02-17 19:14:51 +08:00
/ * *
* A developer tool to enhance debugging ( false | eval | [ inline - | hidden - | eval - ] [ nosources - ] [ cheap - [ module - ] ] source - map ) .
* /
2020-02-17 17:27:46 +08:00
devtool? : DevTool ;
2020-02-17 19:14:51 +08:00
/ * *
* The entry point ( s ) of the compilation .
* /
2018-05-08 12:04:57 +08:00
entry? : Entry ;
2020-02-17 19:14:51 +08:00
/ * *
* Enables / Disables experiments ( experiemental features with relax SemVer compatibility )
* /
2019-06-04 17:26:04 +08:00
experiments? : Experiments ;
2020-02-17 19:14:51 +08:00
/ * *
* 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 ` .
* /
2018-05-08 12:04:57 +08:00
externals? : Externals ;
2020-02-18 17:44:55 +08:00
/ * *
* Specifies the default type of externals ( 'amd*' , 'umd*' , 'system' and 'jsonp' depend on output . libraryTarget set to the same value )
* /
externalsType? : ExternalsType ;
2020-02-17 19:14:51 +08:00
/ * *
* Options for infrastructure level logging
* /
2020-02-17 17:27:46 +08:00
infrastructureLogging? : InfrastructureLogging ;
2020-02-17 19:14:51 +08:00
/ * *
* Custom values available in the loader context .
* /
2020-02-17 17:27:46 +08:00
loader? : Loader ;
2020-02-17 19:14:51 +08:00
/ * *
* Enable production optimizations or development hints .
* /
2020-02-17 17:27:46 +08:00
mode? : Mode ;
2020-02-17 19:14:51 +08:00
/ * *
* Options affecting the normal module s ( ` NormalModuleFactory ` ) .
* /
2020-02-17 17:27:46 +08:00
module ? : Module ;
2020-02-17 19:14:51 +08:00
/ * *
* Name of the configuration . Used when loading multiple configurations .
* /
2020-02-17 17:27:46 +08:00
name? : Name ;
2020-02-17 19:14:51 +08:00
/ * *
* Include polyfills or mocks for various node stuff .
* /
2020-02-17 17:27:46 +08:00
node? : Node ;
2020-02-17 19:14:51 +08:00
/ * *
* Enables / Disables integrated optimizations
* /
2020-02-17 17:27:46 +08:00
optimization? : Optimization ;
2020-02-17 19:14:51 +08:00
/ * *
* Options affecting the output of the compilation . ` output ` options tell webpack how to write the compiled files to disk .
* /
2020-02-17 17:27:46 +08:00
output? : Output ;
2020-02-17 19:14:51 +08:00
/ * *
* The number of parallel processed module s in the compilation .
* /
2020-02-17 17:27:46 +08:00
parallelism? : Parallelism ;
2020-02-17 19:14:51 +08:00
/ * *
* Configuration for web performance recommendations
* /
2020-02-17 17:27:46 +08:00
performance? : Performance ;
2020-02-17 19:14:51 +08:00
/ * *
* Add additional plugins to the compiler .
* /
2020-02-17 17:27:46 +08:00
plugins? : Plugins ;
2020-02-17 19:14:51 +08:00
/ * *
* Capture timing information for each module .
* /
2020-02-17 17:27:46 +08:00
profile? : Profile ;
2020-02-17 19:14:51 +08:00
/ * *
* Store compiler state to a json file .
* /
2020-02-17 17:27:46 +08:00
recordsInputPath? : RecordsInputPath ;
2020-02-17 19:14:51 +08:00
/ * *
* Load compiler state from a json file .
* /
2020-02-17 17:27:46 +08:00
recordsOutputPath? : RecordsOutputPath ;
2020-02-17 19:14:51 +08:00
/ * *
* Store / Load compiler state from / to a json file . This will result in persistent ids of module s and chunks . An absolute path is expected . ` recordsPath ` is used for ` recordsInputPath ` and ` recordsOutputPath ` if they left undefined .
* /
2020-02-17 17:27:46 +08:00
recordsPath? : RecordsPath ;
2020-02-17 19:14:51 +08:00
/ * *
* Options for the resolver
* /
2020-02-17 17:27:46 +08:00
resolve? : Resolve ;
2020-02-17 19:14:51 +08:00
/ * *
* Options for the resolver when resolving loaders
* /
2020-02-17 17:27:46 +08:00
resolveLoader? : ResolveLoader ;
2020-02-17 19:14:51 +08:00
/ * *
* Stats options object or preset name
* /
2020-02-17 17:27:46 +08:00
stats? : Stats ;
2020-02-17 19:14:51 +08:00
/ * *
* Environment to build for
* /
2020-02-17 17:27:46 +08:00
target? : Target ;
2020-02-17 19:14:51 +08:00
/ * *
* Enter watch mode , which rebuilds on file change .
* /
2020-02-17 17:27:46 +08:00
watch? : Watch ;
2020-02-17 19:14:51 +08:00
/ * *
* Options for the watcher
* /
2018-12-10 18:34:59 +08:00
watchOptions? : WatchOptions ;
2018-05-08 12:04:57 +08:00
}
2018-10-09 20:30:59 +08:00
/ * *
2020-02-17 19:14:51 +08:00
* Options object for in - memory caching
2018-10-09 20:30:59 +08:00
* /
export interface MemoryCacheOptions {
2019-08-16 17:55:10 +08:00
/ * *
* List of paths that are managed by a package manager and contain a version or hash in it ' s path so all files are immutable
* /
immutablePaths? : string [ ] ;
2019-08-13 04:59:09 +08:00
/ * *
* List of paths that are managed by a package manager and can be trusted to not being modified otherwise
* /
managedPaths? : string [ ] ;
2018-10-09 20:30:59 +08:00
/ * *
* In memory caching
* /
type : "memory" ;
}
/ * *
2020-02-17 19:14:51 +08:00
* Options object for persistent file - based caching
2018-10-09 20:30:59 +08:00
* /
export interface FileCacheOptions {
2019-08-09 20:46:42 +08:00
/ * *
* Dependencies the build depends on ( in multiple categories , default categories : 'defaultWebpack' )
* /
buildDependencies ? : {
/ * *
* List of dependencies the build depends on
* /
[ k : string ] : string [ ] ;
} ;
2018-10-09 20:30:59 +08:00
/ * *
* Base directory for the cache ( defaults to node_modules / . cache / webpack ) .
* /
cacheDirectory? : string ;
2019-01-26 02:21:45 +08:00
/ * *
* Locations for the cache ( defaults to cacheDirectory / name ) .
* /
cacheLocation? : string ;
2018-10-09 20:30:59 +08:00
/ * *
* Algorithm used for generation the hash ( see node . js crypto package )
* /
hashAlgorithm? : string ;
2019-01-19 18:47:53 +08:00
/ * *
2019-01-19 19:07:26 +08:00
* Time in ms after which idle period the cache storing should happen ( only for store : 'pack' or 'idle' )
2019-01-19 18:47:53 +08:00
* /
idleTimeout? : number ;
2019-01-19 19:07:26 +08:00
/ * *
* Time in ms after which idle period the initial cache storing should happen ( only for store : 'pack' or 'idle' )
* /
idleTimeoutForInitialStore? : number ;
2019-08-16 17:55:10 +08:00
/ * *
* List of paths that are managed by a package manager and contain a version or hash in it ' s path so all files are immutable
* /
immutablePaths? : string [ ] ;
2019-08-13 04:59:09 +08:00
/ * *
* List of paths that are managed by a package manager and can be trusted to not being modified otherwise
* /
managedPaths? : string [ ] ;
2018-10-09 20:30:59 +08:00
/ * *
* Name for the cache . Different names will lead to different coexisting caches .
* /
name? : string ;
/ * *
2019-10-18 21:23:02 +08:00
* When to store data to the filesystem . ( pack : Store data when compiler is idle in a single file )
2018-10-09 20:30:59 +08:00
* /
2019-10-18 21:23:02 +08:00
store ? : "pack" ;
2018-10-09 20:30:59 +08:00
/ * *
* Filesystem caching
* /
type : "filesystem" ;
/ * *
* 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 .
* /
version? : string ;
}
2018-09-19 18:59:48 +08:00
/ * *
2020-02-17 17:27:46 +08:00
* Options for the webpack - dev - server
* /
export interface DevServer {
[ k : string ] : any ;
}
/ * *
* Multiple entry bundles are created . The key is the entry name . The value can be a string , an array or an entry description object .
2018-09-19 18:59:48 +08:00
* /
export interface EntryObject {
/ * *
* An entry point with name
* /
2020-02-05 04:21:42 +08:00
[ k : string ] : EntryItem | EntryDescription ;
2020-02-03 22:46:14 +08:00
}
/ * *
* An object with entry point description .
* /
export interface EntryDescription {
2020-01-31 23:54:42 +08:00
/ * *
* The entrypoints that the current entrypoint depend on . They must be loaded when this entrypoint is loaded .
* /
dependOn? : string | NonEmptyArrayOfUniqueStringValues ;
2020-02-07 18:00:25 +08:00
/ * *
2020-02-26 20:08:05 +08:00
* 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 .
2020-02-07 18:00:25 +08:00
* /
2020-02-26 20:08:05 +08:00
filename? : Filename ;
2020-02-03 22:46:14 +08:00
/ * *
2020-02-26 20:08:05 +08:00
* Module ( s ) that are loaded upon startup
2020-02-03 22:46:14 +08:00
* /
import : EntryItem ;
2018-09-19 18:59:48 +08:00
}
2019-06-04 17:26:04 +08:00
/ * *
* Enables / Disables experiments ( experiemental features with relax SemVer compatibility )
* /
export interface Experiments {
2019-07-16 19:16:27 +08:00
/ * *
* Allow module type 'asset' to generate assets
* /
asset? : boolean ;
2019-06-05 19:25:15 +08:00
/ * *
* Support WebAssembly as asynchronous EcmaScript Module
* /
asyncWebAssembly? : boolean ;
/ * *
* Allow 'import/export' syntax to import async module s
* /
importAsync? : boolean ;
/ * *
* Allow 'import/export await' syntax to import async module s
* /
importAwait? : boolean ;
2019-06-04 17:26:04 +08:00
/ * *
* Support . mjs files as way to define strict ESM file ( node . js )
* /
mjs? : boolean ;
2019-10-09 04:29:46 +08:00
/ * *
* Allow outputing javascript files as module source type
* /
outputModule? : boolean ;
2019-06-05 19:25:15 +08:00
/ * *
* Support WebAssembly as synchronous EcmaScript Module ( outdated )
* /
syncWebAssembly? : boolean ;
/ * *
* Allow using top - level - await in EcmaScript Modules
* /
topLevelAwait? : boolean ;
2019-06-04 17:26:04 +08:00
}
2018-09-18 19:57:44 +08:00
/ * *
2020-02-17 17:27:46 +08:00
* Options for infrastructure level logging
2018-09-18 19:57:44 +08:00
* /
2020-02-17 17:27:46 +08:00
export interface InfrastructureLogging {
/ * *
* Enable debug logging for specific loggers
* /
debug? : FilterTypes | boolean ;
/ * *
* Log level
* /
level ? : "none" | "error" | "warn" | "info" | "log" | "verbose" ;
}
/ * *
* Custom values available in the loader context .
* /
export interface Loader {
[ k : string ] : any ;
}
/ * *
* Options affecting the normal module s ( ` NormalModuleFactory ` ) .
* /
export interface Module {
2018-09-19 16:17:33 +08:00
/ * *
* An array of rules applied by default for module s.
* /
defaultRules? : RuleSetRules ;
2018-05-08 12:04:57 +08:00
/ * *
* Enable warnings for full dynamic dependencies
* /
exprContextCritical? : boolean ;
/ * *
* Enable recursive directory lookup for full dynamic dependencies
* /
exprContextRecursive? : boolean ;
/ * *
* Sets the default regular expression for full dynamic dependencies
* /
2018-09-21 14:39:15 +08:00
exprContextRegExp? : boolean | RegExp ;
2018-05-08 12:04:57 +08:00
/ * *
* Set the default request for full dynamic dependencies
* /
exprContextRequest? : string ;
/ * *
* Don 't parse files matching. It' s matched against the full resolved request .
* /
2019-08-06 15:00:05 +08:00
noParse ? :
2019-11-15 17:20:45 +08:00
| [ RegExp , . . . RegExp [ ] ]
2019-08-06 15:00:05 +08:00
| RegExp
| Function
2019-11-15 17:20:45 +08:00
| [ string , . . . string [ ] ]
2019-08-06 15:00:05 +08:00
| string ;
2018-05-08 12:04:57 +08:00
/ * *
* An array of rules applied for module s.
* /
rules? : RuleSetRules ;
/ * *
2018-09-19 16:17:33 +08:00
* Emit errors instead of warnings when imported names don ' t exist in imported module
2018-05-08 12:04:57 +08:00
* /
2018-09-19 16:17:33 +08:00
strictExportPresence? : boolean ;
/ * *
* Handle the this context correctly according to the spec for namespace objects
* /
strictThisContextOnImports? : boolean ;
2018-05-08 12:04:57 +08:00
/ * *
* Enable warnings when using the require function in a not statically analyse - able way
* /
unknownContextCritical? : boolean ;
/ * *
* Enable recursive directory lookup when using the require function in a not statically analyse - able way
* /
unknownContextRecursive? : boolean ;
/ * *
* Sets the regular expression when using the require function in a not statically analyse - able way
* /
2018-09-21 14:39:15 +08:00
unknownContextRegExp? : boolean | RegExp ;
2018-05-08 12:04:57 +08:00
/ * *
* Sets the request when using the require function in a not statically analyse - able way
* /
unknownContextRequest? : string ;
/ * *
* Cache the resolving of module requests
* /
2018-09-19 18:59:48 +08:00
unsafeCache? : boolean | Function ;
2018-05-08 12:04:57 +08:00
/ * *
* Enable warnings for partial dynamic dependencies
* /
wrappedContextCritical? : boolean ;
/ * *
* Enable recursive directory lookup for partial dynamic dependencies
* /
wrappedContextRecursive? : boolean ;
/ * *
* Set the inner regular expression for partial dynamic dependencies
* /
2018-09-21 14:39:15 +08:00
wrappedContextRegExp? : RegExp ;
2018-05-08 12:04:57 +08:00
}
2018-09-18 19:57:44 +08:00
/ * *
2020-02-17 19:14:51 +08:00
* A rule description with conditions and effects for module s
2018-09-18 19:57:44 +08:00
* /
2018-05-08 12:04:57 +08:00
export interface RuleSetRule {
2018-09-19 16:17:33 +08:00
/ * *
* Match the child compiler name
* /
2018-09-18 21:17:44 +08:00
compiler? : RuleSetConditionOrConditions ;
2018-05-08 12:04:57 +08:00
/ * *
* Enforce this rule as pre or post step
* /
enforce ? : "pre" | "post" ;
/ * *
* Shortcut for resource . exclude
* /
2018-09-21 17:00:44 +08:00
exclude? : RuleSetConditionOrConditionsAbsolute ;
2019-11-16 00:27:36 +08:00
/ * *
* The options for the module generator
* /
generator ? : {
[ k : string ] : any ;
} ;
2018-05-08 12:04:57 +08:00
/ * *
* Shortcut for resource . include
* /
2018-09-21 17:00:44 +08:00
include? : RuleSetConditionOrConditionsAbsolute ;
2018-05-08 12:04:57 +08:00
/ * *
* Match the issuer of the module ( The module pointing to this module )
* /
2018-09-21 17:00:44 +08:00
issuer? : RuleSetConditionOrConditionsAbsolute ;
2018-05-08 12:04:57 +08:00
/ * *
* Shortcut for use . loader
* /
loader? : RuleSetLoader | RuleSetUse ;
/ * *
* Only execute the first matching rule in this array
* /
oneOf? : RuleSetRules ;
/ * *
* Shortcut for use . options
* /
2019-05-16 17:31:41 +08:00
options? : RuleSetLoaderOptions ;
2018-05-08 12:04:57 +08:00
/ * *
* Options for parsing
* /
parser ? : {
[ k : string ] : any ;
} ;
/ * *
2019-05-16 17:31:41 +08:00
* Match the real resource path of the module
2018-05-08 12:04:57 +08:00
* /
2019-05-16 17:31:41 +08:00
realResource? : RuleSetConditionOrConditionsAbsolute ;
2018-05-08 12:04:57 +08:00
/ * *
2018-09-19 16:17:33 +08:00
* Options for the resolver
2018-05-08 12:04:57 +08:00
* /
2018-09-19 16:37:53 +08:00
resolve? : ResolveOptions ;
2018-05-08 12:04:57 +08:00
/ * *
* Match the resource path of the module
* /
2018-09-21 17:00:44 +08:00
resource? : RuleSetConditionOrConditionsAbsolute ;
2018-05-08 12:04:57 +08:00
/ * *
* Match the resource query of the module
* /
2018-09-18 21:17:44 +08:00
resourceQuery? : RuleSetConditionOrConditions ;
2018-05-08 12:04:57 +08:00
/ * *
* Match and execute these rules when this rule is matched
* /
rules? : RuleSetRules ;
2018-09-19 16:17:33 +08:00
/ * *
* Flags a module as with or without side effects
* /
sideEffects? : boolean ;
2018-05-08 12:04:57 +08:00
/ * *
* Shortcut for resource . test
* /
2018-09-21 17:00:44 +08:00
test? : RuleSetConditionOrConditionsAbsolute ;
2018-09-19 16:17:33 +08:00
/ * *
* Module type to use for the module
* /
2019-05-22 19:07:10 +08:00
type ? : string ;
2018-05-08 12:04:57 +08:00
/ * *
* Modifiers applied to the module when rule is matched
* /
use? : RuleSetUse ;
}
2018-09-18 19:57:44 +08:00
/ * *
2020-02-17 19:14:51 +08:00
* Options object for resolving requests
2018-09-18 19:57:44 +08:00
* /
2018-09-19 16:37:53 +08:00
export interface ResolveOptions {
2018-05-08 12:04:57 +08:00
/ * *
* Redirect module requests
* /
alias ? :
| {
/ * *
* New request
* /
2019-07-08 22:11:43 +08:00
[ k : string ] : string | string [ ] | false ;
2018-05-08 12:04:57 +08:00
}
| {
/ * *
* New request
* /
2019-07-12 21:40:52 +08:00
alias : string | string [ ] | false ;
2018-05-08 12:04:57 +08:00
/ * *
* Request to be redirected
* /
2019-07-12 21:40:52 +08:00
name : string ;
2018-05-08 12:04:57 +08:00
/ * *
* Redirect only exact matching request
* /
onlyModule? : boolean ;
} [ ] ;
/ * *
* Fields in the description file ( package . json ) which are used to redirect requests inside the module
* /
2018-09-19 16:37:53 +08:00
aliasFields? : ArrayOfStringOrStringArrayValues ;
2018-10-31 20:53:38 +08:00
/ * *
* Enable caching of successfully resolved requests ( cache entries are revalidated )
* /
cache? : boolean ;
2018-05-08 12:04:57 +08:00
/ * *
* Predicate function to decide which requests should be cached
* /
2018-09-19 18:59:48 +08:00
cachePredicate? : Function ;
2018-05-08 12:04:57 +08:00
/ * *
* Include the context information in the cache identifier when caching
* /
cacheWithContext? : boolean ;
/ * *
* Filenames used to find a description file
* /
2018-09-19 16:37:53 +08:00
descriptionFiles? : ArrayOfStringValues ;
2018-05-08 12:04:57 +08:00
/ * *
* Enforce using one of the extensions from the extensions option
* /
enforceExtension? : boolean ;
/ * *
* Extensions added to the request when trying to find the file
* /
2018-09-19 16:37:53 +08:00
extensions? : ArrayOfStringValues ;
2018-05-08 12:04:57 +08:00
/ * *
* Filesystem for the resolver
* /
fileSystem ? : {
[ k : string ] : any ;
} ;
/ * *
* Field names from the description file ( package . json ) which are used to find the default entry point
* /
2018-09-19 16:37:53 +08:00
mainFields? : ArrayOfStringOrStringArrayValues ;
2018-05-08 12:04:57 +08:00
/ * *
* Filenames used to find the default entry point if there is no description file or main field
* /
2018-09-19 16:37:53 +08:00
mainFiles? : ArrayOfStringValues ;
2018-05-08 12:04:57 +08:00
/ * *
* Folder names or directory paths where to find module s
* /
2018-09-19 16:37:53 +08:00
module s? : ArrayOfStringValues ;
2018-05-08 12:04:57 +08:00
/ * *
* Plugins for the resolver
* /
2019-12-06 02:06:50 +08:00
plugins? : ResolvePluginInstance [ ] ;
2018-05-08 12:04:57 +08:00
/ * *
* Custom resolver
* /
resolver ? : {
[ k : string ] : any ;
} ;
/ * *
* Enable resolving symlinks to the original location
* /
symlinks? : boolean ;
/ * *
2018-10-31 20:53:38 +08:00
* Enable caching of successfully resolved requests ( cache entries are not revalidated )
2018-05-08 12:04:57 +08:00
* /
unsafeCache ? :
| boolean
| {
[ k : string ] : any ;
} ;
/ * *
* Use synchronous filesystem calls for the resolver
* /
useSyncFileSystemCalls? : boolean ;
}
/ * *
* Plugin instance
* /
2019-12-06 02:06:50 +08:00
export interface ResolvePluginInstance {
2018-05-08 12:04:57 +08:00
/ * *
* The run point of the plugin , required method .
* /
2019-12-06 02:06:50 +08:00
apply : ( resolver : import ( "enhanced-resolve/lib/Resolver" ) ) = > void ;
2018-05-08 12:04:57 +08:00
[ k : string ] : any ;
}
2018-09-18 19:57:44 +08:00
/ * *
2020-02-17 19:14:51 +08:00
* Options object for node compatibility features
2018-09-18 19:57:44 +08:00
* /
2018-09-19 16:37:53 +08:00
export interface NodeOptions {
2018-05-08 12:04:57 +08:00
/ * *
2018-09-19 16:37:53 +08:00
* Include a polyfill for the '__dirname' variable
2018-05-08 12:04:57 +08:00
* /
2018-09-19 16:37:53 +08:00
__dirname? : false | true | "mock" ;
2018-05-08 12:04:57 +08:00
/ * *
2018-09-19 16:37:53 +08:00
* Include a polyfill for the '__filename' variable
2018-05-08 12:04:57 +08:00
* /
2018-09-19 16:37:53 +08:00
__filename? : false | true | "mock" ;
2018-05-08 12:04:57 +08:00
/ * *
2018-09-19 16:37:53 +08:00
* Include a polyfill for the 'global' variable
2018-05-08 12:04:57 +08:00
* /
2018-09-19 16:37:53 +08:00
global ? : boolean ;
}
/ * *
* Enables / Disables integrated optimizations
* /
2020-02-17 17:27:46 +08:00
export interface Optimization {
2018-09-19 16:37:53 +08:00
/ * *
* Check for incompatible wasm types when importing / exporting from / to ESM
* /
checkWasmTypes? : boolean ;
/ * *
2018-12-07 19:26:35 +08:00
* Define the algorithm to choose chunk ids ( named : readable ids for better debugging , deterministic : numeric hash ids for better long term caching , size : numeric ids focused on minimal initial download size , total - size : numeric ids focused on minimal total download size , false : no algorithm used , as custom one can be provided via plugin )
2018-09-19 16:37:53 +08:00
* /
2018-12-07 19:26:35 +08:00
chunkIds ? :
| "natural"
| "named"
| "deterministic"
| "size"
| "total-size"
| false ;
2018-09-19 16:37:53 +08:00
/ * *
* Concatenate module s when possible to generate less module s , more efficient code and enable more optimizations by the minimizer
* /
concatenateModules? : boolean ;
/ * *
* Also flag chunks as loaded which contain a subset of the module s
* /
flagIncludedChunks? : boolean ;
2019-09-03 20:11:50 +08:00
/ * *
* Creates a module - internal dependency graph for top level symbols , exports and imports , to improve unused exports detection
* /
innerGraph? : boolean ;
2019-01-28 17:40:32 +08:00
/ * *
* Rename exports when possible to generate shorter code ( depends on optimization . usedExports and optimization . providedExports )
* /
mangleExports? : boolean ;
2018-09-19 16:37:53 +08:00
/ * *
* Reduce size of WASM by changing imports to shorter strings .
* /
mangleWasmImports? : boolean ;
/ * *
* Merge chunks which contain the same module s
* /
mergeDuplicateChunks? : boolean ;
/ * *
* Enable minimizing the output . Uses optimization . minimizer .
* /
minimize? : boolean ;
/ * *
* Minimizer ( s ) to use for minimizing the output
* /
minimizer ? : ( WebpackPluginInstance | WebpackPluginFunction ) [ ] ;
/ * *
2018-10-12 22:53:14 +08:00
* Define the algorithm to choose module ids ( natural : numeric ids in order of usage , named : readable ids for better debugging , hashed : ( deprecated ) short hashes as ids for better long term caching , deterministic : numeric hash ids for better long term caching , size : numeric ids focused on minimal initial download size , false : no algorithm used , as custom one can be provided via plugin )
* /
module Ids? : "natural" | "named" | "hashed" | "deterministic" | "size" | false ;
2018-09-19 16:37:53 +08:00
/ * *
* Avoid emitting assets when errors occur
* /
noEmitOnErrors? : boolean ;
/ * *
* Set process . env . NODE_ENV to a specific value
* /
nodeEnv? : false | string ;
/ * *
* Generate records with relative paths to be able to move the context folder
* /
portableRecords? : boolean ;
/ * *
* Figure out which exports are provided by module s to generate more efficient code
* /
providedExports? : boolean ;
/ * *
* Removes module s from chunks when these module s are already included in all parents
* /
removeAvailableModules? : boolean ;
/ * *
* Remove chunks which are empty
* /
removeEmptyChunks? : boolean ;
2020-02-17 19:14:51 +08:00
/ * *
* Create an additional chunk which contains only the webpack runtime and chunk hash maps
* /
2020-02-17 17:27:46 +08:00
runtimeChunk? : OptimizationRuntimeChunk ;
2018-09-19 16:37:53 +08:00
/ * *
* Skip over module s which are flagged to contain no side effects when exports are not used
* /
sideEffects? : boolean ;
/ * *
* Optimize duplication and caching by splitting chunks by shared module s and cache group
* /
splitChunks? : false | OptimizationSplitChunksOptions ;
/ * *
* Figure out which exports are used by module s to mangle export names , omit unused exports and generate more efficient code
* /
usedExports? : boolean ;
}
2019-12-06 02:06:50 +08:00
/ * *
* Plugin instance
* /
export interface WebpackPluginInstance {
/ * *
* The run point of the plugin , required method .
* /
apply : ( compiler : import ( "../lib/Compiler" ) ) = > void ;
[ k : string ] : any ;
}
2018-09-19 16:37:53 +08:00
/ * *
2020-02-17 19:14:51 +08:00
* Options object for splitting chunks into smaller chunks
2018-09-19 16:37:53 +08:00
* /
export interface OptimizationSplitChunksOptions {
/ * *
* Sets the name delimiter for created chunks
* /
automaticNameDelimiter? : string ;
/ * *
2019-08-09 20:46:42 +08:00
* Assign module s to a cache group ( module s from different cache groups are tried to keep in separate chunks , default categories : 'default' , 'defaultVendors' )
2018-09-19 16:37:53 +08:00
* /
cacheGroups ? : {
/ * *
* Configuration for a cache group
* /
[ k : string ] :
| false
2018-09-19 18:59:48 +08:00
| Function
| string
2018-09-21 14:39:15 +08:00
| RegExp
2018-12-11 03:50:37 +08:00
| OptimizationSplitChunksCacheGroup ;
2018-09-19 16:37:53 +08:00
} ;
/ * *
* Select chunks for determining shared module s ( defaults to "async" , "initial" and "all" requires adding these chunks to the HTML )
* /
2018-09-19 18:59:48 +08:00
chunks ? : ( "initial" | "async" | "all" ) | Function ;
2018-09-19 16:37:53 +08:00
/ * *
* Options for module s not selected by any other cache group
* /
fallbackCacheGroup ? : {
/ * *
* Sets the name delimiter for created chunks
* /
automaticNameDelimiter? : string ;
2018-12-12 03:47:50 +08:00
/ * *
* Maximal size hint for the on - demand chunks
* /
maxAsyncSize? : OptimizationSplitChunksSizes ;
/ * *
* Maximal size hint for the initial chunks
* /
maxInitialSize? : OptimizationSplitChunksSizes ;
2018-09-19 16:37:53 +08:00
/ * *
* Maximal size hint for the created chunks
* /
2018-12-04 23:40:06 +08:00
maxSize? : OptimizationSplitChunksSizes ;
2018-09-19 16:37:53 +08:00
/ * *
* Minimal size for the created chunk
* /
2018-12-04 23:40:06 +08:00
minSize? : OptimizationSplitChunksSizes ;
2018-09-19 16:37:53 +08:00
} ;
/ * *
2019-06-19 04:09:10 +08:00
* Sets the template for the filename for created chunks
2018-09-19 16:37:53 +08:00
* /
2019-06-19 04:09:10 +08:00
filename ? :
| string
2019-09-13 17:12:26 +08:00
| ( (
pathData : import ( "../lib/Compilation" ) . PathData ,
assetInfo? : import ( "../lib/Compilation" ) . AssetInfo
) = > string ) ;
2018-09-19 16:37:53 +08:00
/ * *
* Prevents exposing path info when creating names for parts splitted by maxSize
* /
hidePathInfo? : boolean ;
/ * *
* Maximum number of requests which are accepted for on - demand loading
* /
maxAsyncRequests? : number ;
2018-12-11 03:50:37 +08:00
/ * *
* Maximal size hint for the on - demand chunks
* /
maxAsyncSize? : OptimizationSplitChunksSizes ;
2018-09-19 16:37:53 +08:00
/ * *
* Maximum number of initial chunks which are accepted for an entry point
* /
maxInitialRequests? : number ;
2018-12-11 03:50:37 +08:00
/ * *
* Maximal size hint for the initial chunks
* /
maxInitialSize? : OptimizationSplitChunksSizes ;
2018-09-19 16:37:53 +08:00
/ * *
* Maximal size hint for the created chunks
* /
2018-12-04 23:40:06 +08:00
maxSize? : OptimizationSplitChunksSizes ;
2018-09-19 16:37:53 +08:00
/ * *
* Minimum number of times a module has to be duplicated until it ' s considered for splitting
* /
minChunks? : number ;
2019-05-13 19:10:23 +08:00
/ * *
* Minimal size for the chunks the stay after moving the module s to a new chunk
* /
minRemainingSize? : OptimizationSplitChunksSizes ;
2018-09-19 16:37:53 +08:00
/ * *
* Minimal size for the created chunks
* /
2018-12-04 23:40:06 +08:00
minSize? : OptimizationSplitChunksSizes ;
2018-09-19 16:37:53 +08:00
/ * *
* Give chunks created a name ( chunks with equal name are merged )
* /
2018-12-07 19:26:35 +08:00
name? : false | Function | string ;
2018-09-19 16:37:53 +08:00
}
/ * *
2020-02-17 19:14:51 +08:00
* Options object for describing behavior of a cache group selecting module s that should be cached together
2018-12-11 03:50:37 +08:00
* /
export interface OptimizationSplitChunksCacheGroup {
/ * *
* Sets the name delimiter for created chunks
* /
automaticNameDelimiter? : string ;
/ * *
* Select chunks for determining cache group content ( defaults to "initial" , "initial" and "all" requires adding these chunks to the HTML )
* /
2018-12-12 17:46:44 +08:00
chunks ? :
| ( "initial" | "async" | "all" )
| OptimizationSplitChunksGetCacheGroups ;
2018-12-11 03:50:37 +08:00
/ * *
* Ignore minimum size , minimum chunks and maximum requests and always create chunks for this cache group
* /
enforce? : boolean ;
/ * *
2019-06-19 04:09:10 +08:00
* Sets the template for the filename for created chunks
2018-12-11 03:50:37 +08:00
* /
2019-06-19 04:09:10 +08:00
filename ? :
| string
2019-09-13 17:12:26 +08:00
| ( (
pathData : import ( "../lib/Compilation" ) . PathData ,
assetInfo? : import ( "../lib/Compilation" ) . AssetInfo
) = > string ) ;
2018-12-11 03:50:37 +08:00
/ * *
* Sets the hint for chunk id
* /
idHint? : string ;
/ * *
* Maximum number of requests which are accepted for on - demand loading
* /
maxAsyncRequests? : number ;
2018-12-12 03:47:50 +08:00
/ * *
* Maximal size hint for the on - demand chunks
* /
maxAsyncSize? : OptimizationSplitChunksSizes ;
2018-12-11 03:50:37 +08:00
/ * *
* Maximum number of initial chunks which are accepted for an entry point
* /
maxInitialRequests? : number ;
2018-12-12 03:47:50 +08:00
/ * *
* Maximal size hint for the initial chunks
* /
maxInitialSize? : OptimizationSplitChunksSizes ;
2018-12-11 03:50:37 +08:00
/ * *
* Maximal size hint for the created chunks
* /
maxSize? : OptimizationSplitChunksSizes ;
/ * *
* Minimum number of times a module has to be duplicated until it ' s considered for splitting
* /
minChunks? : number ;
2019-05-13 19:10:23 +08:00
/ * *
* Minimal size for the chunks the stay after moving the module s to a new chunk
* /
minRemainingSize? : OptimizationSplitChunksSizes ;
2018-12-11 03:50:37 +08:00
/ * *
* Minimal size for the created chunk
* /
minSize? : OptimizationSplitChunksSizes ;
/ * *
* Give chunks for this cache group a name ( chunks with equal name are merged )
* /
name? : false | Function | string ;
/ * *
* Priority of this cache group
* /
priority? : number ;
/ * *
* Try to reuse existing chunk ( with name ) when it has matching module s
* /
reuseExistingChunk? : boolean ;
/ * *
* Assign module s to a cache group by module name
* /
test? : Function | string | RegExp ;
/ * *
* Assign module s to a cache group by module type
* /
type ? : Function | string | RegExp ;
}
2018-09-19 16:37:53 +08:00
/ * *
2020-02-17 17:27:46 +08:00
* Options affecting the output of the compilation . ` output ` options tell webpack how to write the compiled files to disk .
2018-09-19 16:37:53 +08:00
* /
2020-02-17 17:27:46 +08:00
export interface Output {
2019-07-16 19:16:27 +08:00
/ * *
2019-07-17 23:30:25 +08:00
* The filename of asset module s as relative path inside the ` output.path ` directory .
2019-07-16 19:16:27 +08:00
* /
2020-02-20 03:25:49 +08:00
assetModuleFilename? : AssetModuleFilename ;
2018-09-19 16:37:53 +08:00
/ * *
* Add a comment in the UMD wrapper .
* /
2020-02-20 03:25:49 +08:00
auxiliaryComment? : AuxiliaryComment ;
2018-09-19 16:37:53 +08:00
/ * *
* The callback function name used by webpack for loading of chunks in WebWorkers .
* /
2020-02-20 03:25:49 +08:00
chunkCallbackName? : ChunkCallbackName ;
2018-09-19 16:37:53 +08:00
/ * *
* The filename of non - entry chunks as relative path inside the ` output.path ` directory .
* /
2020-02-20 03:25:49 +08:00
chunkFilename? : ChunkFilename ;
2018-09-19 16:37:53 +08:00
/ * *
* Number of milliseconds before chunk request expires
* /
2020-02-20 03:25:49 +08:00
chunkLoadTimeout? : ChunkLoadTimeout ;
2019-11-04 23:46:45 +08:00
/ * *
* Check if to be emitted file already exists and have the same content before writing to output filesystem
* /
2020-02-20 03:25:49 +08:00
compareBeforeEmit? : CompareBeforeEmit ;
2018-09-19 16:37:53 +08:00
/ * *
* This option enables cross - origin loading of chunks .
* /
2020-02-20 03:25:49 +08:00
crossOriginLoading? : CrossOriginLoading ;
2018-09-19 16:37:53 +08:00
/ * *
* Similar to ` output.devtoolModuleFilenameTemplate ` , but used in the case of duplicate module identifiers.
* /
2020-02-20 03:25:49 +08:00
devtoolFallbackModuleFilenameTemplate? : DevtoolFallbackModuleFilenameTemplate ;
2018-05-08 12:04:57 +08:00
/ * *
* Filename template string of function for the sources array in a generated SourceMap .
* /
2020-02-20 03:25:49 +08:00
devtoolModuleFilenameTemplate? : DevtoolModuleFilenameTemplate ;
2018-05-08 12:04:57 +08:00
/ * *
* 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 .
* /
2020-02-20 03:25:49 +08:00
devtoolNamespace? : DevtoolNamespace ;
2019-08-27 02:21:07 +08:00
/ * *
* The maximum EcmaScript version of the webpack generated code ( doesn ' t include input source code from module s ) .
* /
2020-02-20 03:25:49 +08:00
ecmaVersion? : EcmaVersion ;
/ * *
* List of library types enabled for use by entry points
* /
enabledLibraryTypes? : EnabledLibraryTypes ;
2018-05-08 12:04:57 +08:00
/ * *
* 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 .
* /
2020-02-20 03:25:49 +08:00
filename? : Filename ;
2018-09-19 16:17:33 +08:00
/ * *
* An expression which is used to address the global object / scope in runtime code
* /
2020-02-20 03:25:49 +08:00
globalObject? : GlobalObject ;
2018-05-08 12:04:57 +08:00
/ * *
* Digest type used for the hash
* /
2020-02-20 03:25:49 +08:00
hashDigest? : HashDigest ;
2018-05-08 12:04:57 +08:00
/ * *
* Number of chars which are used for the hash
* /
2020-02-20 03:25:49 +08:00
hashDigestLength? : HashDigestLength ;
2018-05-08 12:04:57 +08:00
/ * *
* Algorithm used for generation the hash ( see node . js crypto package )
* /
2020-02-20 03:25:49 +08:00
hashFunction? : HashFunction ;
2018-05-08 12:04:57 +08:00
/ * *
* Any string which is added to the hash to salt it
* /
2020-02-20 03:25:49 +08:00
hashSalt? : HashSalt ;
2018-05-08 12:04:57 +08:00
/ * *
* The filename of the Hot Update Chunks . They are inside the output . path directory .
* /
2020-02-20 03:25:49 +08:00
hotUpdateChunkFilename? : HotUpdateChunkFilename ;
2018-05-08 12:04:57 +08:00
/ * *
* The JSONP function used by webpack for async loading of hot update chunks .
* /
2020-02-20 03:25:49 +08:00
hotUpdateFunction? : HotUpdateFunction ;
2018-05-08 12:04:57 +08:00
/ * *
* The filename of the Hot Update Main File . It is inside the ` output.path ` directory .
* /
2020-02-20 03:25:49 +08:00
hotUpdateMainFilename? : HotUpdateMainFilename ;
2019-10-09 04:29:46 +08:00
/ * *
* Wrap javascript code into IIFEs to avoid leaking into global scope .
* /
2020-02-20 03:25:49 +08:00
iife? : Iife ;
2018-05-08 12:04:57 +08:00
/ * *
* The JSONP function used by webpack for async loading of chunks .
* /
2020-02-20 03:25:49 +08:00
jsonpFunction? : JsonpFunction ;
2018-05-08 12:04:57 +08:00
/ * *
2018-09-19 16:17:33 +08:00
* This option enables loading async chunks via a custom script type , such as script type = "module"
2018-05-08 12:04:57 +08:00
* /
2020-02-20 03:25:49 +08:00
jsonpScriptType? : JsonpScriptType ;
2018-05-08 12:04:57 +08:00
/ * *
2020-02-20 03:25:49 +08:00
* Make the output files a library , exporting the exports of the entry point
2018-05-08 12:04:57 +08:00
* /
2020-02-20 03:25:49 +08:00
library? : Library ;
2018-09-19 16:17:33 +08:00
/ * *
* Specify which export should be exposed as library
* /
2020-02-20 03:25:49 +08:00
libraryExport? : LibraryExport ;
2018-05-08 12:04:57 +08:00
/ * *
* Type of library
* /
2020-02-20 03:25:49 +08:00
libraryTarget? : LibraryType ;
2019-10-09 04:29:46 +08:00
/ * *
* Output javascript files as module source type .
* /
2020-02-20 03:25:49 +08:00
module ? : OutputModule ;
2018-05-08 12:04:57 +08:00
/ * *
* The output directory as * * absolute path * * ( required ) .
* /
2020-02-20 03:25:49 +08:00
path? : Path ;
2018-05-08 12:04:57 +08:00
/ * *
* Include comments with information about the module s.
* /
2020-02-20 03:25:49 +08:00
pathinfo? : Pathinfo ;
2018-05-08 12:04:57 +08:00
/ * *
* The ` publicPath ` specifies the public URL address of the output files when referenced in a browser .
* /
2020-02-20 03:25:49 +08:00
publicPath? : PublicPath ;
2018-05-08 12:04:57 +08:00
/ * *
* The filename of the SourceMaps for the JavaScript files . They are inside the ` output.path ` directory .
* /
2020-02-20 03:25:49 +08:00
sourceMapFilename? : SourceMapFilename ;
2018-05-08 12:04:57 +08:00
/ * *
* Prefixes every line of the source in the bundle with this string .
* /
2020-02-20 03:25:49 +08:00
sourcePrefix? : SourcePrefix ;
2018-05-08 12:04:57 +08:00
/ * *
* Handles exceptions in module loading correctly at a performance cost .
* /
2020-02-20 03:25:49 +08:00
strictModuleExceptionHandling? : StrictModuleExceptionHandling ;
2018-05-08 12:04:57 +08:00
/ * *
* If ` output.libraryTarget ` is set to umd and ` output.library ` is set , setting this to true will name the AMD module .
* /
2020-02-20 03:25:49 +08:00
umdNamedDefine? : UmdNamedDefine ;
2020-02-26 22:50:38 +08:00
/ * *
* A unique name of the webpack build to avoid multiple webpack runtimes to conflict when using globals .
* /
2020-02-20 03:25:49 +08:00
uniqueName? : UniqueName ;
2018-09-19 16:17:33 +08:00
/ * *
* The filename of WebAssembly module s as relative path inside the ` output.path ` directory .
* /
2020-02-20 03:25:49 +08:00
webassemblyModuleFilename? : WebassemblyModuleFilename ;
2018-05-08 12:04:57 +08:00
}
2019-10-02 22:59:27 +08:00
/ * *
* Set explicit comments for ` commonjs ` , ` commonjs2 ` , ` amd ` , and ` root ` .
* /
export interface LibraryCustomUmdCommentObject {
/ * *
* Set comment for ` amd ` section in UMD
* /
amd? : string ;
/ * *
* Set comment for ` commonjs ` ( exports ) section in UMD
* /
commonjs? : string ;
/ * *
* Set comment for ` commonjs2 ` ( module .exports ) section in UMD
* /
commonjs2? : string ;
/ * *
* Set comment for ` root ` ( global variable ) section in UMD
* /
root? : string ;
}
2018-09-19 18:59:48 +08:00
/ * *
2020-02-17 19:14:51 +08:00
* Description object for all UMD variants of the library name
2018-09-19 18:59:48 +08:00
* /
export interface LibraryCustomUmdObject {
/ * *
* Name of the exposed AMD library in the UMD
* /
amd? : string ;
/ * *
* Name of the exposed commonjs export in the UMD
* /
commonjs? : string ;
/ * *
* Name of the property exposed globally by a UMD library
* /
root? : string | ArrayOfStringValues ;
}
2020-02-20 03:25:49 +08:00
/ * *
* Options for library
* /
export interface LibraryOptions {
/ * *
* Add a comment in the UMD wrapper .
* /
auxiliaryComment? : AuxiliaryComment ;
/ * *
* Specify which export should be exposed as library
* /
export ? : LibraryExport ;
/ * *
* The name of the library ( some types allow unnamed libraries too )
* /
name? : LibraryName ;
/ * *
* Type of library
* /
type : LibraryType ;
/ * *
* If ` output.libraryTarget ` is set to umd and ` output.library ` is set , setting this to true will name the AMD module .
* /
umdNamedDefine? : UmdNamedDefine ;
}
2018-09-19 16:37:53 +08:00
/ * *
2020-02-17 19:14:51 +08:00
* Configuration object for web performance recommendations
2018-09-19 16:37:53 +08:00
* /
export interface PerformanceOptions {
/ * *
* Filter function to select assets that are checked
* /
2018-09-19 18:59:48 +08:00
assetFilter? : Function ;
2018-09-19 16:37:53 +08:00
/ * *
* Sets the format of the hints : warnings , errors or nothing at all
* /
hints? : false | "warning" | "error" ;
/ * *
* Filesize limit ( in bytes ) when exceeded , that webpack will provide performance hints
* /
maxAssetSize? : number ;
/ * *
* Total size of an entry point ( in bytes )
* /
maxEntrypointSize? : number ;
}
/ * *
2020-02-17 19:14:51 +08:00
* Stats options object
2018-09-19 16:37:53 +08:00
* /
export interface StatsOptions {
/ * *
* fallback value for stats options when an option is not defined ( has precedence over local webpack defaults )
* /
all? : boolean ;
/ * *
* add assets information
* /
assets? : boolean ;
/ * *
* sort the assets by that field
* /
assetsSort? : string ;
/ * *
* add built at time information
* /
builtAt? : boolean ;
/ * *
2018-09-25 22:07:42 +08:00
* add information about cached ( not built ) module s
2018-09-19 16:37:53 +08:00
* /
cached? : boolean ;
/ * *
* Show cached assets ( setting this to ` false ` only shows emitted files )
* /
cachedAssets? : boolean ;
/ * *
* add children information
* /
children? : boolean ;
/ * *
* Display all chunk groups with the corresponding bundles
* /
chunkGroups? : boolean ;
/ * *
* add built module s information to chunk information
* /
chunkModules? : boolean ;
/ * *
* add the origins of chunks and chunk merging info
* /
chunkOrigins? : boolean ;
2018-12-22 20:19:13 +08:00
/ * *
* add information about parent , children and sibling chunks to chunk information
* /
chunkRelations? : boolean ;
2018-12-06 19:30:22 +08:00
/ * *
* add root module s information to chunk information
* /
chunkRootModules? : boolean ;
2018-09-19 16:37:53 +08:00
/ * *
* add chunk information
* /
chunks? : boolean ;
/ * *
* sort the chunks by that field
* /
chunksSort? : string ;
/ * *
* Enables / Disables colorful output
* /
colors ? :
| boolean
| {
/ * *
* Custom color for bold text
* /
bold? : string ;
/ * *
* Custom color for cyan text
* /
cyan? : string ;
/ * *
* Custom color for green text
* /
green? : string ;
/ * *
* Custom color for magenta text
* /
magenta? : string ;
/ * *
* Custom color for red text
* /
red? : string ;
/ * *
* Custom color for yellow text
* /
yellow? : string ;
} ;
/ * *
* context directory for request shortening
* /
context? : string ;
/ * *
* add module depth in module graph
* /
depth? : boolean ;
/ * *
* Display the entry points with the corresponding bundles
* /
entrypoints? : boolean ;
/ * *
* add -- env information
* /
env? : boolean ;
/ * *
* add details to errors ( like resolving log )
* /
errorDetails? : boolean ;
2019-10-15 04:34:40 +08:00
/ * *
* add internal stack trace to errors
* /
errorStack? : boolean ;
2018-09-19 16:37:53 +08:00
/ * *
* add errors
* /
errors? : boolean ;
/ * *
* Please use excludeModules instead .
* /
exclude? : FilterTypes | boolean ;
/ * *
* Suppress assets that match the specified filters . Filters can be Strings , RegExps or Functions
* /
excludeAssets? : FilterTypes ;
/ * *
* Suppress module s that match the specified filters . Filters can be Strings , RegExps , Booleans or Functions
* /
excludeModules? : FilterTypes | boolean ;
/ * *
* add the hash of the compilation
* /
hash? : boolean ;
2020-02-03 18:00:13 +08:00
/ * *
* add ids
* /
ids? : boolean ;
add logging API
Plugins:
Compiler.getInfrastructureLogger(name)
Compilation.getLogger(name)
Loader:
this.getLogger([name])
API equal to console API with these methods:
error, warn, info, log, debug,
time, timeLog, timeEnd,
group, groupCollapsed, groupEnd,
profile, profileEnd,
clear
2019-07-18 23:13:40 +08:00
/ * *
* add logging output
* /
2019-07-22 16:35:26 +08:00
logging? : boolean | ( "none" | "error" | "warn" | "info" | "log" | "verbose" ) ;
2019-07-22 14:23:40 +08:00
/ * *
* Include debug logging of specified loggers ( i . e . for plugins or loaders ) . Filters can be Strings , RegExps or Functions
* /
loggingDebug? : FilterTypes | boolean ;
add logging API
Plugins:
Compiler.getInfrastructureLogger(name)
Compilation.getLogger(name)
Loader:
this.getLogger([name])
API equal to console API with these methods:
error, warn, info, log, debug,
time, timeLog, timeEnd,
group, groupCollapsed, groupEnd,
profile, profileEnd,
clear
2019-07-18 23:13:40 +08:00
/ * *
* add stack traces to logging output
* /
loggingTrace? : boolean ;
2018-09-19 16:37:53 +08:00
/ * *
* Set the maximum number of module s to be shown
* /
maxModules? : number ;
/ * *
* add information about assets inside module s
* /
module Assets? : boolean ;
/ * *
* add dependencies and origin of warnings / errors
* /
module Trace? : boolean ;
/ * *
* add built module s information
* /
module s? : boolean ;
/ * *
* sort the module s by that field
* /
module sSort? : string ;
/ * *
* add information about module s nested in other module s ( like with module concatenation )
* /
nestedModules? : boolean ;
/ * *
* show reasons why optimization bailed out for module s
* /
optimizationBailout? : boolean ;
2018-09-25 22:07:42 +08:00
/ * *
* add information about orphan module s
* /
orphanModules? : boolean ;
2018-09-19 16:37:53 +08:00
/ * *
* Add output path information
* /
outputPath? : boolean ;
/ * *
* add performance hint flags
* /
performance? : boolean ;
2018-12-22 18:58:29 +08:00
/ * *
* preset for the default values
* /
preset? : boolean | string ;
2018-09-19 16:37:53 +08:00
/ * *
* show exports provided by module s
* /
providedExports? : boolean ;
/ * *
* Add public path information
* /
publicPath? : boolean ;
/ * *
* add information about the reasons why module s are included
* /
reasons? : boolean ;
2018-11-28 20:07:40 +08:00
/ * *
* add information about runtime module s
* /
runtime? : boolean ;
2018-09-19 16:37:53 +08:00
/ * *
* add the source code of module s
* /
source? : boolean ;
/ * *
* add timing information
* /
timings? : boolean ;
/ * *
* show exports used by module s
* /
usedExports? : boolean ;
/ * *
* add webpack version information
* /
version? : boolean ;
/ * *
* add warnings
* /
warnings? : boolean ;
/ * *
* Suppress warnings that match the specified filters . Filters can be Strings , RegExps or Functions
* /
warningsFilter? : FilterTypes ;
}
2018-12-10 18:34:59 +08:00
/ * *
2020-02-17 17:27:46 +08:00
* Options for the watcher
2018-12-10 18:34:59 +08:00
* /
export interface WatchOptions {
/ * *
* Delay the rebuilt after the first change . Value is a time in ms .
* /
aggregateTimeout? : number ;
/ * *
2019-07-01 15:00:19 +08:00
* Ignore some files from watching ( glob pattern )
2018-12-10 18:34:59 +08:00
* /
2019-07-01 15:00:19 +08:00
ignored? : string | ArrayOfStringValues ;
2018-12-10 18:34:59 +08:00
/ * *
* Enable polling mode for watching
* /
poll? : boolean | number ;
/ * *
* Stop watching when stdin stream has ended
* /
stdin? : boolean ;
}
2020-02-26 20:08:05 +08:00
/ * *
* An object with entry point description .
* /
export interface EntryDescriptionNormalized {
/ * *
* The entrypoints that the current entrypoint depend on . They must be loaded when this entrypoint is loaded .
* /
dependOn? : NonEmptyArrayOfUniqueStringValues ;
/ * *
* 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 .
* /
filename? : Filename ;
/ * *
* Module ( s ) that are loaded upon startup . The last one is exported .
* /
import : NonEmptyArrayOfUniqueStringValues ;
}
2020-02-17 17:27:46 +08:00
/ * *
* Multiple entry bundles are created . The key is the entry name . The value is an entry description object .
* /
export interface EntryStaticNormalized {
/ * *
* An object with entry point description .
* /
2020-02-26 20:08:05 +08:00
[ k : string ] : EntryDescriptionNormalized ;
2020-02-17 17:27:46 +08:00
}
2020-02-20 03:25:49 +08:00
/ * *
* Normalized options affecting the output of the compilation . ` output ` options tell webpack how to write the compiled files to disk .
* /
export interface OutputNormalized {
/ * *
* The filename of asset module s as relative path inside the ` output.path ` directory .
* /
assetModuleFilename? : AssetModuleFilename ;
/ * *
* The callback function name used by webpack for loading of chunks in WebWorkers .
* /
chunkCallbackName? : ChunkCallbackName ;
/ * *
* The filename of non - entry chunks as relative path inside the ` output.path ` directory .
* /
chunkFilename? : ChunkFilename ;
/ * *
* Number of milliseconds before chunk request expires
* /
chunkLoadTimeout? : ChunkLoadTimeout ;
/ * *
* Check if to be emitted file already exists and have the same content before writing to output filesystem
* /
compareBeforeEmit? : CompareBeforeEmit ;
/ * *
* This option enables cross - origin loading of chunks .
* /
crossOriginLoading? : CrossOriginLoading ;
/ * *
* Similar to ` output.devtoolModuleFilenameTemplate ` , but used in the case of duplicate module identifiers.
* /
devtoolFallbackModuleFilenameTemplate? : DevtoolFallbackModuleFilenameTemplate ;
/ * *
* Filename template string of function for the sources array in a generated SourceMap .
* /
devtoolModuleFilenameTemplate? : DevtoolModuleFilenameTemplate ;
/ * *
* 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 .
* /
devtoolNamespace? : DevtoolNamespace ;
/ * *
* The maximum EcmaScript version of the webpack generated code ( doesn ' t include input source code from module s ) .
* /
ecmaVersion? : EcmaVersion ;
/ * *
* List of library types enabled for use by entry points
* /
enabledLibraryTypes? : EnabledLibraryTypes ;
/ * *
* 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 .
* /
filename? : Filename ;
/ * *
* An expression which is used to address the global object / scope in runtime code
* /
globalObject? : GlobalObject ;
/ * *
* Digest type used for the hash
* /
hashDigest? : HashDigest ;
/ * *
* Number of chars which are used for the hash
* /
hashDigestLength? : HashDigestLength ;
/ * *
* Algorithm used for generation the hash ( see node . js crypto package )
* /
hashFunction? : HashFunction ;
/ * *
* Any string which is added to the hash to salt it
* /
hashSalt? : HashSalt ;
/ * *
* The filename of the Hot Update Chunks . They are inside the output . path directory .
* /
hotUpdateChunkFilename? : HotUpdateChunkFilename ;
/ * *
* The JSONP function used by webpack for async loading of hot update chunks .
* /
hotUpdateFunction? : HotUpdateFunction ;
/ * *
* The filename of the Hot Update Main File . It is inside the ` output.path ` directory .
* /
hotUpdateMainFilename? : HotUpdateMainFilename ;
/ * *
* Wrap javascript code into IIFEs to avoid leaking into global scope .
* /
iife? : Iife ;
/ * *
* The JSONP function used by webpack for async loading of chunks .
* /
jsonpFunction? : JsonpFunction ;
/ * *
* This option enables loading async chunks via a custom script type , such as script type = "module"
* /
jsonpScriptType? : JsonpScriptType ;
/ * *
* Options for library
* /
library? : LibraryOptions ;
/ * *
* Output javascript files as module source type .
* /
module ? : OutputModule ;
/ * *
* The output directory as * * absolute path * * ( required ) .
* /
path? : Path ;
/ * *
* Include comments with information about the module s.
* /
pathinfo? : Pathinfo ;
/ * *
* The ` publicPath ` specifies the public URL address of the output files when referenced in a browser .
* /
publicPath? : PublicPath ;
/ * *
* The filename of the SourceMaps for the JavaScript files . They are inside the ` output.path ` directory .
* /
sourceMapFilename? : SourceMapFilename ;
/ * *
* Prefixes every line of the source in the bundle with this string .
* /
sourcePrefix? : SourcePrefix ;
/ * *
* Handles exceptions in module loading correctly at a performance cost .
* /
strictModuleExceptionHandling? : StrictModuleExceptionHandling ;
/ * *
* A unique name of the webpack build to avoid multiple webpack runtimes to conflict when using globals .
* /
uniqueName? : UniqueName ;
/ * *
* The filename of WebAssembly module s as relative path inside the ` output.path ` directory .
* /
webassemblyModuleFilename? : WebassemblyModuleFilename ;
}
2020-02-17 17:27:46 +08:00
/ * *
2020-02-17 19:14:51 +08:00
* Normalized webpack options object
2020-02-17 17:27:46 +08:00
* /
export interface WebpackOptionsNormalized {
2020-02-17 19:14:51 +08:00
/ * *
* Set the value of ` require.amd ` and ` define.amd ` . Or disable AMD support .
* /
2020-02-17 17:27:46 +08:00
amd? : Amd ;
2020-02-17 19:14:51 +08:00
/ * *
* Report the first error as a hard error instead of tolerating it .
* /
2020-02-17 17:27:46 +08:00
bail? : Bail ;
2020-02-17 19:14:51 +08:00
/ * *
* Cache generated module s and chunks to improve performance for multiple incremental builds .
* /
2020-02-17 17:27:46 +08:00
cache : CacheNormalized ;
2020-02-17 19:14:51 +08:00
/ * *
* The base directory ( absolute path ! ) for resolving the ` entry ` option . If ` output.pathinfo ` is set , the included pathinfo is shortened to this directory .
* /
2020-02-17 17:27:46 +08:00
context? : Context ;
2020-02-17 19:14:51 +08:00
/ * *
* References to other configurations to depend on .
* /
2020-02-17 17:27:46 +08:00
dependencies? : Dependencies ;
2020-02-17 19:14:51 +08:00
/ * *
* Options for the webpack - dev - server
* /
2020-02-17 17:27:46 +08:00
devServer? : DevServer ;
2020-02-17 19:14:51 +08:00
/ * *
* A developer tool to enhance debugging ( false | eval | [ inline - | hidden - | eval - ] [ nosources - ] [ cheap - [ module - ] ] source - map ) .
* /
2020-02-17 17:27:46 +08:00
devtool? : DevTool ;
2020-02-17 19:14:51 +08:00
/ * *
* The entry point ( s ) of the compilation .
* /
2020-02-17 17:27:46 +08:00
entry : EntryNormalized ;
2020-02-17 19:14:51 +08:00
/ * *
* Enables / Disables experiments ( experiemental features with relax SemVer compatibility )
* /
2020-02-17 17:27:46 +08:00
experiments : Experiments ;
2020-02-17 19:14:51 +08:00
/ * *
* 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 ` .
* /
2020-02-17 17:27:46 +08:00
externals : Externals ;
2020-02-18 17:44:55 +08:00
/ * *
* Specifies the default type of externals ( 'amd*' , 'umd*' , 'system' and 'jsonp' depend on output . libraryTarget set to the same value )
* /
externalsType? : ExternalsType ;
2020-02-17 19:14:51 +08:00
/ * *
* Options for infrastructure level logging
* /
2020-02-17 17:27:46 +08:00
infrastructureLogging : InfrastructureLogging ;
2020-02-17 19:14:51 +08:00
/ * *
* Custom values available in the loader context .
* /
2020-02-17 17:27:46 +08:00
loader? : Loader ;
2020-02-17 19:14:51 +08:00
/ * *
* Enable production optimizations or development hints .
* /
2020-02-17 17:27:46 +08:00
mode? : Mode ;
2020-02-17 19:14:51 +08:00
/ * *
* Options affecting the normal module s ( ` NormalModuleFactory ` ) .
* /
2020-02-17 17:27:46 +08:00
module : Module ;
2020-02-17 19:14:51 +08:00
/ * *
* Name of the configuration . Used when loading multiple configurations .
* /
2020-02-17 17:27:46 +08:00
name? : Name ;
2020-02-17 19:14:51 +08:00
/ * *
* Include polyfills or mocks for various node stuff .
* /
2020-02-17 17:27:46 +08:00
node : Node ;
2020-02-17 19:14:51 +08:00
/ * *
* Enables / Disables integrated optimizations
* /
2020-02-17 17:27:46 +08:00
optimization : Optimization ;
2020-02-17 19:14:51 +08:00
/ * *
2020-02-20 03:25:49 +08:00
* Normalized options affecting the output of the compilation . ` output ` options tell webpack how to write the compiled files to disk .
2020-02-17 19:14:51 +08:00
* /
2020-02-20 03:25:49 +08:00
output : OutputNormalized ;
2020-02-17 19:14:51 +08:00
/ * *
* The number of parallel processed module s in the compilation .
* /
2020-02-17 17:27:46 +08:00
parallelism? : Parallelism ;
2020-02-17 19:14:51 +08:00
/ * *
* Configuration for web performance recommendations
* /
2020-02-17 17:27:46 +08:00
performance? : Performance ;
2020-02-17 19:14:51 +08:00
/ * *
* Add additional plugins to the compiler .
* /
2020-02-17 17:27:46 +08:00
plugins : Plugins ;
2020-02-17 19:14:51 +08:00
/ * *
* Capture timing information for each module .
* /
2020-02-17 17:27:46 +08:00
profile? : Profile ;
2020-02-17 19:14:51 +08:00
/ * *
* Store compiler state to a json file .
* /
2020-02-17 17:27:46 +08:00
recordsInputPath? : RecordsInputPath ;
2020-02-17 19:14:51 +08:00
/ * *
* Load compiler state from a json file .
* /
2020-02-17 17:27:46 +08:00
recordsOutputPath? : RecordsOutputPath ;
2020-02-17 19:14:51 +08:00
/ * *
* Options for the resolver
* /
2020-02-17 17:27:46 +08:00
resolve : Resolve ;
2020-02-17 19:14:51 +08:00
/ * *
* Options for the resolver when resolving loaders
* /
2020-02-17 17:27:46 +08:00
resolveLoader : ResolveLoader ;
2020-02-17 19:14:51 +08:00
/ * *
* Stats options object or preset name
* /
2020-02-17 17:27:46 +08:00
stats : Stats ;
2020-02-17 19:14:51 +08:00
/ * *
* Environment to build for
* /
2020-02-17 17:27:46 +08:00
target? : Target ;
2020-02-17 19:14:51 +08:00
/ * *
* Enter watch mode , which rebuilds on file change .
* /
2020-02-17 17:27:46 +08:00
watch? : Watch ;
2020-02-17 19:14:51 +08:00
/ * *
* Options for the watcher
* /
2020-02-17 17:27:46 +08:00
watchOptions : WatchOptions ;
}