From bbff7403fbf46f9ad92240ac213df8d30ef31b64 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Thu, 20 Sep 2018 02:56:13 +0200 Subject: update packages --- node_modules/webpack/lib/webpack.js | 311 ++++++++++++++++++++++-------------- 1 file changed, 191 insertions(+), 120 deletions(-) (limited to 'node_modules/webpack/lib/webpack.js') diff --git a/node_modules/webpack/lib/webpack.js b/node_modules/webpack/lib/webpack.js index 81fc7d83f..61357818e 100644 --- a/node_modules/webpack/lib/webpack.js +++ b/node_modules/webpack/lib/webpack.js @@ -1,120 +1,191 @@ -/* - MIT License http://www.opensource.org/licenses/mit-license.php - Author Tobias Koppers @sokra -*/ -"use strict"; - -const Compiler = require("./Compiler"); -const MultiCompiler = require("./MultiCompiler"); -const NodeEnvironmentPlugin = require("./node/NodeEnvironmentPlugin"); -const WebpackOptionsApply = require("./WebpackOptionsApply"); -const WebpackOptionsDefaulter = require("./WebpackOptionsDefaulter"); -const validateSchema = require("./validateSchema"); -const WebpackOptionsValidationError = require("./WebpackOptionsValidationError"); -const webpackOptionsSchema = require("../schemas/webpackOptionsSchema.json"); - -function webpack(options, callback) { - const webpackOptionsValidationErrors = validateSchema(webpackOptionsSchema, options); - if(webpackOptionsValidationErrors.length) { - throw new WebpackOptionsValidationError(webpackOptionsValidationErrors); - } - let compiler; - if(Array.isArray(options)) { - compiler = new MultiCompiler(options.map(options => webpack(options))); - } else if(typeof options === "object") { - // TODO webpack 4: process returns options - new WebpackOptionsDefaulter().process(options); - - compiler = new Compiler(); - compiler.context = options.context; - compiler.options = options; - new NodeEnvironmentPlugin().apply(compiler); - if(options.plugins && Array.isArray(options.plugins)) { - compiler.apply.apply(compiler, options.plugins); - } - compiler.applyPlugins("environment"); - compiler.applyPlugins("after-environment"); - compiler.options = new WebpackOptionsApply().process(options, compiler); - } else { - throw new Error("Invalid argument: options"); - } - if(callback) { - if(typeof callback !== "function") throw new Error("Invalid argument: callback"); - if(options.watch === true || (Array.isArray(options) && options.some(o => o.watch))) { - const watchOptions = Array.isArray(options) ? options.map(o => o.watchOptions || {}) : (options.watchOptions || {}); - return compiler.watch(watchOptions, callback); - } - compiler.run(callback); - } - return compiler; -} -exports = module.exports = webpack; - -webpack.WebpackOptionsDefaulter = WebpackOptionsDefaulter; -webpack.WebpackOptionsApply = WebpackOptionsApply; -webpack.Compiler = Compiler; -webpack.MultiCompiler = MultiCompiler; -webpack.NodeEnvironmentPlugin = NodeEnvironmentPlugin; -webpack.validate = validateSchema.bind(this, webpackOptionsSchema); -webpack.validateSchema = validateSchema; -webpack.WebpackOptionsValidationError = WebpackOptionsValidationError; - -function exportPlugins(obj, mappings) { - Object.keys(mappings).forEach(name => { - Object.defineProperty(obj, name, { - configurable: false, - enumerable: true, - get: mappings[name] - }); - }); -} - -exportPlugins(exports, { - "DefinePlugin": () => require("./DefinePlugin"), - "NormalModuleReplacementPlugin": () => require("./NormalModuleReplacementPlugin"), - "ContextReplacementPlugin": () => require("./ContextReplacementPlugin"), - "ContextExclusionPlugin": () => require("./ContextExclusionPlugin"), - "IgnorePlugin": () => require("./IgnorePlugin"), - "WatchIgnorePlugin": () => require("./WatchIgnorePlugin"), - "BannerPlugin": () => require("./BannerPlugin"), - "PrefetchPlugin": () => require("./PrefetchPlugin"), - "AutomaticPrefetchPlugin": () => require("./AutomaticPrefetchPlugin"), - "ProvidePlugin": () => require("./ProvidePlugin"), - "HotModuleReplacementPlugin": () => require("./HotModuleReplacementPlugin"), - "SourceMapDevToolPlugin": () => require("./SourceMapDevToolPlugin"), - "EvalSourceMapDevToolPlugin": () => require("./EvalSourceMapDevToolPlugin"), - "EvalDevToolModulePlugin": () => require("./EvalDevToolModulePlugin"), - "CachePlugin": () => require("./CachePlugin"), - "ExtendedAPIPlugin": () => require("./ExtendedAPIPlugin"), - "ExternalsPlugin": () => require("./ExternalsPlugin"), - "JsonpTemplatePlugin": () => require("./JsonpTemplatePlugin"), - "LibraryTemplatePlugin": () => require("./LibraryTemplatePlugin"), - "LoaderTargetPlugin": () => require("./LoaderTargetPlugin"), - "MemoryOutputFileSystem": () => require("./MemoryOutputFileSystem"), - "ProgressPlugin": () => require("./ProgressPlugin"), - "SetVarMainTemplatePlugin": () => require("./SetVarMainTemplatePlugin"), - "UmdMainTemplatePlugin": () => require("./UmdMainTemplatePlugin"), - "NoErrorsPlugin": () => require("./NoErrorsPlugin"), - "NoEmitOnErrorsPlugin": () => require("./NoEmitOnErrorsPlugin"), - "NewWatchingPlugin": () => require("./NewWatchingPlugin"), - "EnvironmentPlugin": () => require("./EnvironmentPlugin"), - "DllPlugin": () => require("./DllPlugin"), - "DllReferencePlugin": () => require("./DllReferencePlugin"), - "LoaderOptionsPlugin": () => require("./LoaderOptionsPlugin"), - "NamedModulesPlugin": () => require("./NamedModulesPlugin"), - "NamedChunksPlugin": () => require("./NamedChunksPlugin"), - "HashedModuleIdsPlugin": () => require("./HashedModuleIdsPlugin"), - "ModuleFilenameHelpers": () => require("./ModuleFilenameHelpers") -}); -exportPlugins(exports.optimize = {}, { - "AggressiveMergingPlugin": () => require("./optimize/AggressiveMergingPlugin"), - "AggressiveSplittingPlugin": () => require("./optimize/AggressiveSplittingPlugin"), - "CommonsChunkPlugin": () => require("./optimize/CommonsChunkPlugin"), - "ChunkModuleIdRangePlugin": () => require("./optimize/ChunkModuleIdRangePlugin"), - "DedupePlugin": () => require("./optimize/DedupePlugin"), - "LimitChunkCountPlugin": () => require("./optimize/LimitChunkCountPlugin"), - "MinChunkSizePlugin": () => require("./optimize/MinChunkSizePlugin"), - "ModuleConcatenationPlugin": () => require("./optimize/ModuleConcatenationPlugin"), - "OccurrenceOrderPlugin": () => require("./optimize/OccurrenceOrderPlugin"), - "UglifyJsPlugin": () => require("./optimize/UglifyJsPlugin") -}); +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +"use strict"; + +const Compiler = require("./Compiler"); +const MultiCompiler = require("./MultiCompiler"); +const NodeEnvironmentPlugin = require("./node/NodeEnvironmentPlugin"); +const WebpackOptionsApply = require("./WebpackOptionsApply"); +const WebpackOptionsDefaulter = require("./WebpackOptionsDefaulter"); +const validateSchema = require("./validateSchema"); +const WebpackOptionsValidationError = require("./WebpackOptionsValidationError"); +const webpackOptionsSchema = require("../schemas/WebpackOptions.json"); +const RemovedPluginError = require("./RemovedPluginError"); +const version = require("../package.json").version; + +const webpack = (options, callback) => { + const webpackOptionsValidationErrors = validateSchema( + webpackOptionsSchema, + options + ); + if (webpackOptionsValidationErrors.length) { + throw new WebpackOptionsValidationError(webpackOptionsValidationErrors); + } + let compiler; + if (Array.isArray(options)) { + compiler = new MultiCompiler(options.map(options => webpack(options))); + } else if (typeof options === "object") { + options = new WebpackOptionsDefaulter().process(options); + + compiler = new Compiler(options.context); + compiler.options = options; + new NodeEnvironmentPlugin().apply(compiler); + if (options.plugins && Array.isArray(options.plugins)) { + for (const plugin of options.plugins) { + plugin.apply(compiler); + } + } + compiler.hooks.environment.call(); + compiler.hooks.afterEnvironment.call(); + compiler.options = new WebpackOptionsApply().process(options, compiler); + } else { + throw new Error("Invalid argument: options"); + } + if (callback) { + if (typeof callback !== "function") { + throw new Error("Invalid argument: callback"); + } + if ( + options.watch === true || + (Array.isArray(options) && options.some(o => o.watch)) + ) { + const watchOptions = Array.isArray(options) + ? options.map(o => o.watchOptions || {}) + : options.watchOptions || {}; + return compiler.watch(watchOptions, callback); + } + compiler.run(callback); + } + return compiler; +}; + +exports = module.exports = webpack; +exports.version = version; + +webpack.WebpackOptionsDefaulter = WebpackOptionsDefaulter; +webpack.WebpackOptionsApply = WebpackOptionsApply; +webpack.Compiler = Compiler; +webpack.MultiCompiler = MultiCompiler; +webpack.NodeEnvironmentPlugin = NodeEnvironmentPlugin; +// @ts-ignore Global @this directive is not supported +webpack.validate = validateSchema.bind(this, webpackOptionsSchema); +webpack.validateSchema = validateSchema; +webpack.WebpackOptionsValidationError = WebpackOptionsValidationError; + +const exportPlugins = (obj, mappings) => { + for (const name of Object.keys(mappings)) { + Object.defineProperty(obj, name, { + configurable: false, + enumerable: true, + get: mappings[name] + }); + } +}; + +exportPlugins(exports, { + AutomaticPrefetchPlugin: () => require("./AutomaticPrefetchPlugin"), + BannerPlugin: () => require("./BannerPlugin"), + CachePlugin: () => require("./CachePlugin"), + ContextExclusionPlugin: () => require("./ContextExclusionPlugin"), + ContextReplacementPlugin: () => require("./ContextReplacementPlugin"), + DefinePlugin: () => require("./DefinePlugin"), + Dependency: () => require("./Dependency"), + DllPlugin: () => require("./DllPlugin"), + DllReferencePlugin: () => require("./DllReferencePlugin"), + EnvironmentPlugin: () => require("./EnvironmentPlugin"), + EvalDevToolModulePlugin: () => require("./EvalDevToolModulePlugin"), + EvalSourceMapDevToolPlugin: () => require("./EvalSourceMapDevToolPlugin"), + ExtendedAPIPlugin: () => require("./ExtendedAPIPlugin"), + ExternalsPlugin: () => require("./ExternalsPlugin"), + HashedModuleIdsPlugin: () => require("./HashedModuleIdsPlugin"), + HotModuleReplacementPlugin: () => require("./HotModuleReplacementPlugin"), + IgnorePlugin: () => require("./IgnorePlugin"), + LibraryTemplatePlugin: () => require("./LibraryTemplatePlugin"), + LoaderOptionsPlugin: () => require("./LoaderOptionsPlugin"), + LoaderTargetPlugin: () => require("./LoaderTargetPlugin"), + MemoryOutputFileSystem: () => require("./MemoryOutputFileSystem"), + Module: () => require("./Module"), + ModuleFilenameHelpers: () => require("./ModuleFilenameHelpers"), + NamedChunksPlugin: () => require("./NamedChunksPlugin"), + NamedModulesPlugin: () => require("./NamedModulesPlugin"), + NoEmitOnErrorsPlugin: () => require("./NoEmitOnErrorsPlugin"), + NormalModuleReplacementPlugin: () => + require("./NormalModuleReplacementPlugin"), + PrefetchPlugin: () => require("./PrefetchPlugin"), + ProgressPlugin: () => require("./ProgressPlugin"), + ProvidePlugin: () => require("./ProvidePlugin"), + SetVarMainTemplatePlugin: () => require("./SetVarMainTemplatePlugin"), + SingleEntryPlugin: () => require("./SingleEntryPlugin"), + SourceMapDevToolPlugin: () => require("./SourceMapDevToolPlugin"), + Stats: () => require("./Stats"), + Template: () => require("./Template"), + UmdMainTemplatePlugin: () => require("./UmdMainTemplatePlugin"), + WatchIgnorePlugin: () => require("./WatchIgnorePlugin") +}); +exportPlugins((exports.dependencies = {}), { + DependencyReference: () => require("./dependencies/DependencyReference") +}); +exportPlugins((exports.optimize = {}), { + AggressiveMergingPlugin: () => require("./optimize/AggressiveMergingPlugin"), + AggressiveSplittingPlugin: () => + require("./optimize/AggressiveSplittingPlugin"), + ChunkModuleIdRangePlugin: () => + require("./optimize/ChunkModuleIdRangePlugin"), + LimitChunkCountPlugin: () => require("./optimize/LimitChunkCountPlugin"), + MinChunkSizePlugin: () => require("./optimize/MinChunkSizePlugin"), + ModuleConcatenationPlugin: () => + require("./optimize/ModuleConcatenationPlugin"), + OccurrenceOrderPlugin: () => require("./optimize/OccurrenceOrderPlugin"), + OccurrenceModuleOrderPlugin: () => + require("./optimize/OccurrenceModuleOrderPlugin"), + OccurrenceChunkOrderPlugin: () => + require("./optimize/OccurrenceChunkOrderPlugin"), + RuntimeChunkPlugin: () => require("./optimize/RuntimeChunkPlugin"), + SideEffectsFlagPlugin: () => require("./optimize/SideEffectsFlagPlugin"), + SplitChunksPlugin: () => require("./optimize/SplitChunksPlugin") +}); +exportPlugins((exports.web = {}), { + FetchCompileWasmTemplatePlugin: () => + require("./web/FetchCompileWasmTemplatePlugin"), + JsonpTemplatePlugin: () => require("./web/JsonpTemplatePlugin") +}); +exportPlugins((exports.webworker = {}), { + WebWorkerTemplatePlugin: () => require("./webworker/WebWorkerTemplatePlugin") +}); +exportPlugins((exports.node = {}), { + NodeTemplatePlugin: () => require("./node/NodeTemplatePlugin"), + ReadFileCompileWasmTemplatePlugin: () => + require("./node/ReadFileCompileWasmTemplatePlugin") +}); +exportPlugins((exports.debug = {}), { + ProfilingPlugin: () => require("./debug/ProfilingPlugin") +}); +exportPlugins((exports.util = {}), { + createHash: () => require("./util/createHash") +}); + +const defineMissingPluginError = (namespace, pluginName, errorMessage) => { + Object.defineProperty(namespace, pluginName, { + configurable: false, + enumerable: true, + get() { + throw new RemovedPluginError(errorMessage); + } + }); +}; + +// TODO remove in webpack 5 +defineMissingPluginError( + exports.optimize, + "UglifyJsPlugin", + "webpack.optimize.UglifyJsPlugin has been removed, please use config.optimization.minimize instead." +); + +// TODO remove in webpack 5 +defineMissingPluginError( + exports.optimize, + "CommonsChunkPlugin", + "webpack.optimize.CommonsChunkPlugin has been removed, please use config.optimization.splitChunks instead." +); -- cgit v1.2.3