| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 | /*	MIT License http://www.opensource.org/licenses/mit-license.php	Author Tobias Koppers @sokra*/"use strict";const RuntimeGlobals = require("../RuntimeGlobals");const JsonpChunkLoadingRuntimeModule = require("./JsonpChunkLoadingRuntimeModule");/** @typedef {import("../Compiler")} Compiler */class JsonpChunkLoadingPlugin {	/**	 * Apply the plugin	 * @param {Compiler} compiler the compiler instance	 * @returns {void}	 */	apply(compiler) {		compiler.hooks.thisCompilation.tap(			"JsonpChunkLoadingPlugin",			compilation => {				const globalChunkLoading = compilation.outputOptions.chunkLoading;				const isEnabledForChunk = chunk => {					const options = chunk.getEntryOptions();					const chunkLoading =						options && options.chunkLoading !== undefined							? options.chunkLoading							: globalChunkLoading;					return chunkLoading === "jsonp";				};				const onceForChunkSet = new WeakSet();				const handler = (chunk, set) => {					if (onceForChunkSet.has(chunk)) return;					onceForChunkSet.add(chunk);					if (!isEnabledForChunk(chunk)) return;					set.add(RuntimeGlobals.moduleFactoriesAddOnly);					set.add(RuntimeGlobals.hasOwnProperty);					compilation.addRuntimeModule(						chunk,						new JsonpChunkLoadingRuntimeModule(set)					);				};				compilation.hooks.runtimeRequirementInTree					.for(RuntimeGlobals.ensureChunkHandlers)					.tap("JsonpChunkLoadingPlugin", handler);				compilation.hooks.runtimeRequirementInTree					.for(RuntimeGlobals.hmrDownloadUpdateHandlers)					.tap("JsonpChunkLoadingPlugin", handler);				compilation.hooks.runtimeRequirementInTree					.for(RuntimeGlobals.hmrDownloadManifest)					.tap("JsonpChunkLoadingPlugin", handler);				compilation.hooks.runtimeRequirementInTree					.for(RuntimeGlobals.baseURI)					.tap("JsonpChunkLoadingPlugin", handler);				compilation.hooks.runtimeRequirementInTree					.for(RuntimeGlobals.onChunksLoaded)					.tap("JsonpChunkLoadingPlugin", handler);				compilation.hooks.runtimeRequirementInTree					.for(RuntimeGlobals.ensureChunkHandlers)					.tap("JsonpChunkLoadingPlugin", (chunk, set) => {						if (!isEnabledForChunk(chunk)) return;						set.add(RuntimeGlobals.publicPath);						set.add(RuntimeGlobals.loadScript);						set.add(RuntimeGlobals.getChunkScriptFilename);					});				compilation.hooks.runtimeRequirementInTree					.for(RuntimeGlobals.hmrDownloadUpdateHandlers)					.tap("JsonpChunkLoadingPlugin", (chunk, set) => {						if (!isEnabledForChunk(chunk)) return;						set.add(RuntimeGlobals.publicPath);						set.add(RuntimeGlobals.loadScript);						set.add(RuntimeGlobals.getChunkUpdateScriptFilename);						set.add(RuntimeGlobals.moduleCache);						set.add(RuntimeGlobals.hmrModuleData);						set.add(RuntimeGlobals.moduleFactoriesAddOnly);					});				compilation.hooks.runtimeRequirementInTree					.for(RuntimeGlobals.hmrDownloadManifest)					.tap("JsonpChunkLoadingPlugin", (chunk, set) => {						if (!isEnabledForChunk(chunk)) return;						set.add(RuntimeGlobals.publicPath);						set.add(RuntimeGlobals.getUpdateManifestFilename);					});			}		);	}}module.exports = JsonpChunkLoadingPlugin;
 |