| 
									
										
										
										
											2018-12-09 21:26:35 +08:00
										 |  |  | /* | 
					
						
							|  |  |  | 	MIT License http://www.opensource.org/licenses/mit-license.php
 | 
					
						
							|  |  |  | 	Author Tobias Koppers @sokra | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | "use strict"; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-08 18:44:45 +08:00
										 |  |  | const validate = require("schema-utils"); | 
					
						
							| 
									
										
										
										
											2018-12-09 21:26:35 +08:00
										 |  |  | const util = require("util"); | 
					
						
							|  |  |  | const { version } = require("../package.json"); | 
					
						
							|  |  |  | const webpackOptionsSchema = require("../schemas/WebpackOptions.json"); | 
					
						
							|  |  |  | const Compiler = require("./Compiler"); | 
					
						
							|  |  |  | const MultiCompiler = require("./MultiCompiler"); | 
					
						
							|  |  |  | const WebpackOptionsApply = require("./WebpackOptionsApply"); | 
					
						
							|  |  |  | const WebpackOptionsDefaulter = require("./WebpackOptionsDefaulter"); | 
					
						
							| 
									
										
										
										
											2019-08-08 18:44:45 +08:00
										 |  |  | const validateSchema = require("./validateSchema"); | 
					
						
							| 
									
										
										
										
											2018-12-09 21:26:35 +08:00
										 |  |  | const webpack = require("./webpack"); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-06 14:55:00 +08:00
										 |  |  | module.exports = webpack; | 
					
						
							|  |  |  | module.exports.WebpackOptionsApply = WebpackOptionsApply; | 
					
						
							|  |  |  | module.exports.WebpackOptionsDefaulter = WebpackOptionsDefaulter; | 
					
						
							| 
									
										
										
										
											2019-08-08 18:44:45 +08:00
										 |  |  | module.exports.WebpackOptionsValidationError = validate.ValidationError; | 
					
						
							| 
									
										
										
										
											2019-08-06 14:55:00 +08:00
										 |  |  | module.exports.Compiler = Compiler; | 
					
						
							|  |  |  | module.exports.MultiCompiler = MultiCompiler; | 
					
						
							|  |  |  | module.exports.validate = validateSchema.bind(null, webpackOptionsSchema); | 
					
						
							|  |  |  | module.exports.validateSchema = validateSchema; | 
					
						
							|  |  |  | module.exports.version = version; | 
					
						
							| 
									
										
										
										
											2018-12-09 21:26:35 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | const exportPlugins = (obj, mappings) => { | 
					
						
							|  |  |  | 	for (const name of Object.keys(mappings)) { | 
					
						
							|  |  |  | 		Object.defineProperty(obj, name, { | 
					
						
							|  |  |  | 			configurable: false, | 
					
						
							|  |  |  | 			enumerable: true, | 
					
						
							|  |  |  | 			get: mappings[name] | 
					
						
							|  |  |  | 		}); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-06 14:55:00 +08:00
										 |  |  | exportPlugins(module.exports, { | 
					
						
							| 
									
										
										
										
											2018-12-09 21:26:35 +08:00
										 |  |  | 	AutomaticPrefetchPlugin: () => require("./AutomaticPrefetchPlugin"), | 
					
						
							|  |  |  | 	BannerPlugin: () => require("./BannerPlugin"), | 
					
						
							| 
									
										
										
										
											2019-05-13 17:03:10 +08:00
										 |  |  | 	Cache: () => require("./Cache"), | 
					
						
							| 
									
										
										
										
											2018-12-09 21:26:35 +08:00
										 |  |  | 	ContextExclusionPlugin: () => require("./ContextExclusionPlugin"), | 
					
						
							|  |  |  | 	ContextReplacementPlugin: () => require("./ContextReplacementPlugin"), | 
					
						
							|  |  |  | 	DefinePlugin: () => require("./DefinePlugin"), | 
					
						
							|  |  |  | 	Dependency: () => require("./Dependency"), | 
					
						
							|  |  |  | 	DllPlugin: () => require("./DllPlugin"), | 
					
						
							|  |  |  | 	DllReferencePlugin: () => require("./DllReferencePlugin"), | 
					
						
							|  |  |  | 	EntryPlugin: () => require("./EntryPlugin"), | 
					
						
							|  |  |  | 	EnvironmentPlugin: () => require("./EnvironmentPlugin"), | 
					
						
							|  |  |  | 	EvalDevToolModulePlugin: () => require("./EvalDevToolModulePlugin"), | 
					
						
							|  |  |  | 	EvalSourceMapDevToolPlugin: () => require("./EvalSourceMapDevToolPlugin"), | 
					
						
							|  |  |  | 	ExternalsPlugin: () => require("./ExternalsPlugin"), | 
					
						
							|  |  |  | 	HotModuleReplacementPlugin: () => require("./HotModuleReplacementPlugin"), | 
					
						
							|  |  |  | 	IgnorePlugin: () => require("./IgnorePlugin"), | 
					
						
							|  |  |  | 	LibraryTemplatePlugin: () => require("./LibraryTemplatePlugin"), | 
					
						
							|  |  |  | 	LoaderOptionsPlugin: () => require("./LoaderOptionsPlugin"), | 
					
						
							|  |  |  | 	LoaderTargetPlugin: () => require("./LoaderTargetPlugin"), | 
					
						
							|  |  |  | 	Module: () => require("./Module"), | 
					
						
							|  |  |  | 	ModuleFilenameHelpers: () => require("./ModuleFilenameHelpers"), | 
					
						
							|  |  |  | 	NoEmitOnErrorsPlugin: () => require("./NoEmitOnErrorsPlugin"), | 
					
						
							|  |  |  | 	NormalModuleReplacementPlugin: () => | 
					
						
							|  |  |  | 		require("./NormalModuleReplacementPlugin"), | 
					
						
							|  |  |  | 	PrefetchPlugin: () => require("./PrefetchPlugin"), | 
					
						
							|  |  |  | 	ProgressPlugin: () => require("./ProgressPlugin"), | 
					
						
							|  |  |  | 	ProvidePlugin: () => require("./ProvidePlugin"), | 
					
						
							|  |  |  | 	SingleEntryPlugin: util.deprecate( | 
					
						
							|  |  |  | 		() => require("./EntryPlugin"), | 
					
						
							|  |  |  | 		"SingleEntryPlugin was renamed to EntryPlugin" | 
					
						
							|  |  |  | 	), | 
					
						
							|  |  |  | 	SetVarMainTemplatePlugin: () => require("./SetVarMainTemplatePlugin"), | 
					
						
							|  |  |  | 	SourceMapDevToolPlugin: () => require("./SourceMapDevToolPlugin"), | 
					
						
							|  |  |  | 	Stats: () => require("./Stats"), | 
					
						
							|  |  |  | 	Template: () => require("./Template"), | 
					
						
							|  |  |  | 	UmdMainTemplatePlugin: () => require("./UmdMainTemplatePlugin"), | 
					
						
							|  |  |  | 	WatchIgnorePlugin: () => require("./WatchIgnorePlugin") | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-06 14:55:00 +08:00
										 |  |  | exportPlugins((module.exports.cache = {}), { | 
					
						
							| 
									
										
										
										
											2018-12-09 21:26:35 +08:00
										 |  |  | 	MemoryCachePlugin: () => require("./cache/MemoryCachePlugin") | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-06 14:55:00 +08:00
										 |  |  | exportPlugins((module.exports.dependencies = {}), { | 
					
						
							| 
									
										
										
										
											2018-12-09 21:26:35 +08:00
										 |  |  | 	DependencyReference: () => require("./dependencies/DependencyReference") | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-06 14:55:00 +08:00
										 |  |  | exportPlugins((module.exports.ids = {}), { | 
					
						
							| 
									
										
										
										
											2018-12-09 21:26:35 +08:00
										 |  |  | 	ChunkModuleIdRangePlugin: () => require("./ids/ChunkModuleIdRangePlugin"), | 
					
						
							|  |  |  | 	NaturalModuleIdsPlugin: () => require("./ids/NaturalModuleIdsPlugin"), | 
					
						
							|  |  |  | 	OccurrenceModuleIdsPlugin: () => require("./ids/OccurrenceModuleIdsPlugin"), | 
					
						
							|  |  |  | 	NamedModuleIdsPlugin: () => require("./ids/NamedModuleIdsPlugin"), | 
					
						
							|  |  |  | 	DeterministicModuleIdsPlugin: () => | 
					
						
							|  |  |  | 		require("./ids/DeterministicModuleIdsPlugin"), | 
					
						
							|  |  |  | 	NamedChunkIdsPlugin: () => require("./ids/NamedChunkIdsPlugin"), | 
					
						
							|  |  |  | 	OccurrenceChunkIdsPlugin: () => require("./ids/OccurrenceChunkIdsPlugin"), | 
					
						
							|  |  |  | 	HashedModuleIdsPlugin: () => require("./ids/HashedModuleIdsPlugin") | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-06 14:55:00 +08:00
										 |  |  | exportPlugins((module.exports.optimize = {}), { | 
					
						
							| 
									
										
										
										
											2018-12-09 21:26:35 +08:00
										 |  |  | 	AggressiveMergingPlugin: () => require("./optimize/AggressiveMergingPlugin"), | 
					
						
							|  |  |  | 	AggressiveSplittingPlugin: util.deprecate( | 
					
						
							|  |  |  | 		() => require("./optimize/AggressiveSplittingPlugin"), | 
					
						
							|  |  |  | 		"AggressiveSplittingPlugin is deprecated in favor of SplitChunksPlugin" | 
					
						
							|  |  |  | 	), | 
					
						
							|  |  |  | 	LimitChunkCountPlugin: () => require("./optimize/LimitChunkCountPlugin"), | 
					
						
							|  |  |  | 	MinChunkSizePlugin: () => require("./optimize/MinChunkSizePlugin"), | 
					
						
							|  |  |  | 	ModuleConcatenationPlugin: () => | 
					
						
							|  |  |  | 		require("./optimize/ModuleConcatenationPlugin"), | 
					
						
							|  |  |  | 	RuntimeChunkPlugin: () => require("./optimize/RuntimeChunkPlugin"), | 
					
						
							|  |  |  | 	SideEffectsFlagPlugin: () => require("./optimize/SideEffectsFlagPlugin"), | 
					
						
							|  |  |  | 	SplitChunksPlugin: () => require("./optimize/SplitChunksPlugin") | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-06 14:55:00 +08:00
										 |  |  | exportPlugins((module.exports.web = {}), { | 
					
						
							| 
									
										
										
										
											2018-12-09 21:26:35 +08:00
										 |  |  | 	FetchCompileWasmPlugin: () => require("./web/FetchCompileWasmPlugin"), | 
					
						
							|  |  |  | 	JsonpTemplatePlugin: () => require("./web/JsonpTemplatePlugin") | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-06 14:55:00 +08:00
										 |  |  | exportPlugins((module.exports.webworker = {}), { | 
					
						
							| 
									
										
										
										
											2018-12-09 21:26:35 +08:00
										 |  |  | 	WebWorkerTemplatePlugin: () => require("./webworker/WebWorkerTemplatePlugin") | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-06 14:55:00 +08:00
										 |  |  | exportPlugins((module.exports.node = {}), { | 
					
						
							| 
									
										
										
										
											2018-12-10 18:40:59 +08:00
										 |  |  | 	NodeEnvironmentPlugin: () => require("./node/NodeEnvironmentPlugin"), | 
					
						
							| 
									
										
										
										
											2018-12-09 21:26:35 +08:00
										 |  |  | 	NodeTemplatePlugin: () => require("./node/NodeTemplatePlugin"), | 
					
						
							|  |  |  | 	ReadFileCompileWasmPlugin: () => require("./node/ReadFileCompileWasmPlugin") | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-06 14:55:00 +08:00
										 |  |  | exportPlugins((module.exports.debug = {}), { | 
					
						
							| 
									
										
										
										
											2018-12-09 21:26:35 +08:00
										 |  |  | 	ProfilingPlugin: () => require("./debug/ProfilingPlugin") | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-06 14:55:00 +08:00
										 |  |  | exportPlugins((module.exports.util = {}), { | 
					
						
							| 
									
										
										
										
											2018-12-09 21:26:35 +08:00
										 |  |  | 	createHash: () => require("./util/createHash"), | 
					
						
							| 
									
										
										
										
											2018-12-28 20:18:02 +08:00
										 |  |  | 	comparators: () => require("./util/comparators"), | 
					
						
							|  |  |  | 	serialization: () => require("./util/serialization") | 
					
						
							| 
									
										
										
										
											2018-12-09 21:26:35 +08:00
										 |  |  | }); |