mirror of https://github.com/webpack/webpack.git
				
				
				
			upgrade tapable for Compilation
This commit is contained in:
		
							parent
							
								
									3f453a4f3c
								
							
						
					
					
						commit
						7787b4ad13
					
				|  | @ -6,7 +6,11 @@ | ||||||
| 
 | 
 | ||||||
| const asyncLib = require("async"); | const asyncLib = require("async"); | ||||||
| const util = require("util"); | const util = require("util"); | ||||||
| const Tapable = require("tapable-old"); | const Tapable = require("tapable").Tapable; | ||||||
|  | const SyncHook = require("tapable").SyncHook; | ||||||
|  | const SyncBailHook = require("tapable").SyncBailHook; | ||||||
|  | const SyncWaterfallHook = require("tapable").SyncWaterfallHook; | ||||||
|  | const AsyncSeriesHook = require("tapable").AsyncSeriesHook; | ||||||
| const EntryModuleNotFoundError = require("./EntryModuleNotFoundError"); | const EntryModuleNotFoundError = require("./EntryModuleNotFoundError"); | ||||||
| const ModuleNotFoundError = require("./ModuleNotFoundError"); | const ModuleNotFoundError = require("./ModuleNotFoundError"); | ||||||
| const ModuleDependencyWarning = require("./ModuleDependencyWarning"); | const ModuleDependencyWarning = require("./ModuleDependencyWarning"); | ||||||
|  | @ -58,6 +62,111 @@ function addAllToSet(set, otherSet) { | ||||||
| class Compilation extends Tapable { | class Compilation extends Tapable { | ||||||
| 	constructor(compiler) { | 	constructor(compiler) { | ||||||
| 		super(); | 		super(); | ||||||
|  | 		this.hooks = { | ||||||
|  | 			buildModule: new SyncHook(["module"]), | ||||||
|  | 			failedModule: new SyncHook(["module", "error"]), | ||||||
|  | 			succeedModule: new SyncHook(["module"]), | ||||||
|  | 
 | ||||||
|  | 			finishModules: new SyncHook(["modules"]), | ||||||
|  | 
 | ||||||
|  | 			unseal: new SyncHook([]), | ||||||
|  | 			seal: new SyncHook([]), | ||||||
|  | 
 | ||||||
|  | 			optimizeDependenciesBasic: new SyncBailHook(["modules"]), | ||||||
|  | 			optimizeDependencies: new SyncBailHook(["modules"]), | ||||||
|  | 			optimizeDependenciesAdvanced: new SyncBailHook(["modules"]), | ||||||
|  | 			afterOptimizeDependencies: new SyncHook(["modules"]), | ||||||
|  | 
 | ||||||
|  | 			optimize: new SyncHook([]), | ||||||
|  | 
 | ||||||
|  | 			optimizeModulesBasic: new SyncBailHook(["modules"]), | ||||||
|  | 			optimizeModules: new SyncBailHook(["modules"]), | ||||||
|  | 			optimizeModulesAdvanced: new SyncBailHook(["modules"]), | ||||||
|  | 			afterOptimizeModules: new SyncHook(["modules"]), | ||||||
|  | 
 | ||||||
|  | 			optimizeChunksBasic: new SyncBailHook(["chunks"]), | ||||||
|  | 			optimizeChunks: new SyncBailHook(["chunks"]), | ||||||
|  | 			optimizeChunksAdvanced: new SyncBailHook(["chunks"]), | ||||||
|  | 			afterOptimizeChunks: new SyncHook(["chunks"]), | ||||||
|  | 
 | ||||||
|  | 			optimizeTree: new AsyncSeriesHook(["chunks", "modules"]), | ||||||
|  | 			afterOptimizeTree: new SyncHook(["chunks", "modules"]), | ||||||
|  | 
 | ||||||
|  | 			optimizeChunkModulesBasic: new SyncBailHook(["chunks", "modules"]), | ||||||
|  | 			optimizeChunkModules: new SyncBailHook(["chunks", "modules"]), | ||||||
|  | 			optimizeChunkModulesAdvanced: new SyncBailHook(["chunks", "modules"]), | ||||||
|  | 			afterOptimizeChunkModules: new SyncHook(["chunks", "modules"]), | ||||||
|  | 			shouldRecord: new SyncBailHook([]), | ||||||
|  | 
 | ||||||
|  | 			reviveModules: new SyncHook(["modules", "records"]), | ||||||
|  | 			optimizeModuleOrder: new SyncHook(["modules"]), | ||||||
|  | 			advancedOptimizeModuleOrder: new SyncHook(["modules"]), | ||||||
|  | 			beforeModuleIds: new SyncHook(["modules"]), | ||||||
|  | 			moduleIds: new SyncHook(["modules"]), | ||||||
|  | 			optimizeModuleIds: new SyncHook(["modules"]), | ||||||
|  | 			afterOptimizeModuleIds: new SyncHook(["modules"]), | ||||||
|  | 
 | ||||||
|  | 			reviveChunks: new SyncHook(["chunks", "records"]), | ||||||
|  | 			optimizeChunkOrder: new SyncHook(["chunks"]), | ||||||
|  | 			beforeChunkIds: new SyncHook(["chunks"]), | ||||||
|  | 			optimizeChunkIds: new SyncHook(["chunks"]), | ||||||
|  | 			afterOptimizeChunkIds: new SyncHook(["chunks"]), | ||||||
|  | 
 | ||||||
|  | 			recordModules: new SyncHook(["modules", "records"]), | ||||||
|  | 			recordChunks: new SyncHook(["chunks", "records"]), | ||||||
|  | 
 | ||||||
|  | 			beforeHash: new SyncHook([]), | ||||||
|  | 			afterHash: new SyncHook([]), | ||||||
|  | 
 | ||||||
|  | 			recordHash: new SyncHook(["records"]), | ||||||
|  | 
 | ||||||
|  | 			record: new SyncHook(["compilation", "records"]), | ||||||
|  | 
 | ||||||
|  | 			beforeModuleAssets: new SyncHook([]), | ||||||
|  | 			shouldGenerateChunkAssets: new SyncBailHook([]), | ||||||
|  | 			beforeChunkAssets: new SyncHook([]), | ||||||
|  | 			additionalChunkAssets: new SyncHook(["chunks"]), | ||||||
|  | 
 | ||||||
|  | 			records: new SyncHook(["compilation", "records"]), | ||||||
|  | 
 | ||||||
|  | 			additionalAssets: new AsyncSeriesHook([]), | ||||||
|  | 			optimizeChunkAssets: new AsyncSeriesHook(["chunks"]), | ||||||
|  | 			afterOptimizeChunkAssets: new SyncHook(["chunks"]), | ||||||
|  | 			optimizeAssets: new AsyncSeriesHook(["assets"]), | ||||||
|  | 			afterOptimizeAssets: new SyncHook(["assets"]), | ||||||
|  | 
 | ||||||
|  | 			needAdditionalSeal: new SyncBailHook([]), | ||||||
|  | 			afterSeal: new AsyncSeriesHook([]), | ||||||
|  | 
 | ||||||
|  | 			chunkHash: new SyncHook(["chunk", "chunkHash"]), | ||||||
|  | 			moduleAsset: new SyncHook(["module", "filename"]), | ||||||
|  | 			chunkAsset: new SyncHook(["chunk", "filename"]), | ||||||
|  | 
 | ||||||
|  | 			assetPath: new SyncWaterfallHook(["filename", "data"]), // TODO MainTemplate
 | ||||||
|  | 
 | ||||||
|  | 			needAdditionalPass: new SyncBailHook([]), | ||||||
|  | 			childCompiler: new SyncHook(["childCompiler", "compilerName", "compilerIndex"]), | ||||||
|  | 
 | ||||||
|  | 			// TODO the following hooks are weirdly located here
 | ||||||
|  | 			// TODO move them for webpack 5
 | ||||||
|  | 			normalModuleLoader: new SyncHook(["loaderContext", "module"]), | ||||||
|  | 
 | ||||||
|  | 			optimizeExtractedChunksBasic: new SyncBailHook(["chunks"]), | ||||||
|  | 			optimizeExtractedChunks: new SyncBailHook(["chunks"]), | ||||||
|  | 			optimizeExtractedChunksAdvanced: new SyncBailHook(["chunks"]), | ||||||
|  | 			afterOptimizeExtractedChunks: new SyncHook(["chunks"]), | ||||||
|  | 		}; | ||||||
|  | 		this._pluginCompat.tap("Compilation", options => { | ||||||
|  | 			switch(options.name) { | ||||||
|  | 				case "optimize-tree": | ||||||
|  | 				case "additional-assets": | ||||||
|  | 				case "optimize-chunk-assets": | ||||||
|  | 				case "optimize-assets": | ||||||
|  | 				case "after-seal": | ||||||
|  | 					options.async = true; | ||||||
|  | 					break; | ||||||
|  | 			} | ||||||
|  | 		}); | ||||||
| 		this.compiler = compiler; | 		this.compiler = compiler; | ||||||
| 		this.resolverFactory = compiler.resolverFactory; | 		this.resolverFactory = compiler.resolverFactory; | ||||||
| 		this.inputFileSystem = compiler.inputFileSystem; | 		this.inputFileSystem = compiler.inputFileSystem; | ||||||
|  | @ -163,7 +272,7 @@ class Compilation extends Tapable { | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	buildModule(module, optional, origin, dependencies, thisCallback) { | 	buildModule(module, optional, origin, dependencies, thisCallback) { | ||||||
| 		this.applyPlugins1("build-module", module); | 		this.hooks.buildModule.call(module); | ||||||
| 		let callbackList = this._buildingModules.get(module); | 		let callbackList = this._buildingModules.get(module); | ||||||
| 		if(callbackList) { | 		if(callbackList) { | ||||||
| 			callbackList.push(thisCallback); | 			callbackList.push(thisCallback); | ||||||
|  | @ -197,10 +306,10 @@ class Compilation extends Tapable { | ||||||
| 			} | 			} | ||||||
| 			module.dependencies.sort(Dependency.compare); | 			module.dependencies.sort(Dependency.compare); | ||||||
| 			if(error) { | 			if(error) { | ||||||
| 				this.applyPlugins2("failed-module", module, error); | 				this.hooks.failedModule.call(module, error); | ||||||
| 				return callback(error); | 				return callback(error); | ||||||
| 			} | 			} | ||||||
| 			this.applyPlugins1("succeed-module", module); | 			this.hooks.succeedModule.call(module); | ||||||
| 			return callback(); | 			return callback(); | ||||||
| 		}); | 		}); | ||||||
| 	} | 	} | ||||||
|  | @ -601,7 +710,7 @@ class Compilation extends Tapable { | ||||||
| 
 | 
 | ||||||
| 	finish() { | 	finish() { | ||||||
| 		const modules = this.modules; | 		const modules = this.modules; | ||||||
| 		this.applyPlugins1("finish-modules", modules); | 		this.hooks.finishModules.call(modules); | ||||||
| 
 | 
 | ||||||
| 		for(let index = 0; index < modules.length; index++) { | 		for(let index = 0; index < modules.length; index++) { | ||||||
| 			const module = modules[index]; | 			const module = modules[index]; | ||||||
|  | @ -610,7 +719,7 @@ class Compilation extends Tapable { | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	unseal() { | 	unseal() { | ||||||
| 		this.applyPlugins0("unseal"); | 		this.hooks.unseal.call(); | ||||||
| 		this.chunks.length = 0; | 		this.chunks.length = 0; | ||||||
| 		this.namedChunks = {}; | 		this.namedChunks = {}; | ||||||
| 		this.additionalChunkAssets.length = 0; | 		this.additionalChunkAssets.length = 0; | ||||||
|  | @ -619,12 +728,12 @@ class Compilation extends Tapable { | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	seal(callback) { | 	seal(callback) { | ||||||
| 		this.applyPlugins0("seal"); | 		this.hooks.seal.call(); | ||||||
| 
 | 
 | ||||||
| 		while(this.applyPluginsBailResult1("optimize-dependencies-basic", this.modules) || | 		while(this.hooks.optimizeDependenciesBasic.call(this.modules) || | ||||||
| 			this.applyPluginsBailResult1("optimize-dependencies", this.modules) || | 			this.hooks.optimizeDependencies.call(this.modules) || | ||||||
| 			this.applyPluginsBailResult1("optimize-dependencies-advanced", this.modules)) { /* empty */ } | 			this.hooks.optimizeDependenciesAdvanced.call(this.modules)) { /* empty */ } | ||||||
| 		this.applyPlugins1("after-optimize-dependencies", this.modules); | 		this.hooks.afterOptimizeDependencies.call(this.modules); | ||||||
| 
 | 
 | ||||||
| 		this.nextFreeModuleIndex = 0; | 		this.nextFreeModuleIndex = 0; | ||||||
| 		this.nextFreeModuleIndex2 = 0; | 		this.nextFreeModuleIndex2 = 0; | ||||||
|  | @ -642,94 +751,94 @@ class Compilation extends Tapable { | ||||||
| 		}); | 		}); | ||||||
| 		this.processDependenciesBlocksForChunks(this.chunks.slice()); | 		this.processDependenciesBlocksForChunks(this.chunks.slice()); | ||||||
| 		this.sortModules(this.modules); | 		this.sortModules(this.modules); | ||||||
| 		this.applyPlugins0("optimize"); | 		this.hooks.optimize.call(); | ||||||
| 
 | 
 | ||||||
| 		while(this.applyPluginsBailResult1("optimize-modules-basic", this.modules) || | 		while(this.hooks.optimizeModulesBasic.call(this.modules) || | ||||||
| 			this.applyPluginsBailResult1("optimize-modules", this.modules) || | 			this.hooks.optimizeModules.call(this.modules) || | ||||||
| 			this.applyPluginsBailResult1("optimize-modules-advanced", this.modules)) { /* empty */ } | 			this.hooks.optimizeModulesAdvanced.call(this.modules)) { /* empty */ } | ||||||
| 		this.applyPlugins1("after-optimize-modules", this.modules); | 		this.hooks.afterOptimizeModules.call(this.modules); | ||||||
| 
 | 
 | ||||||
| 		while(this.applyPluginsBailResult1("optimize-chunks-basic", this.chunks) || | 		while(this.hooks.optimizeChunksBasic.call(this.chunks) || | ||||||
| 			this.applyPluginsBailResult1("optimize-chunks", this.chunks) || | 			this.hooks.optimizeChunks.call(this.chunks) || | ||||||
| 			this.applyPluginsBailResult1("optimize-chunks-advanced", this.chunks)) { /* empty */ } | 			this.hooks.optimizeChunksAdvanced.call(this.chunks)) { /* empty */ } | ||||||
| 		this.applyPlugins1("after-optimize-chunks", this.chunks); | 		this.hooks.afterOptimizeChunks.call(this.chunks); | ||||||
| 
 | 
 | ||||||
| 		this.applyPluginsAsyncSeries("optimize-tree", this.chunks, this.modules, err => { | 		this.hooks.optimizeTree.callAsync(this.chunks, this.modules, err => { | ||||||
| 			if(err) { | 			if(err) { | ||||||
| 				return callback(err); | 				return callback(err); | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			this.applyPlugins2("after-optimize-tree", this.chunks, this.modules); | 			this.hooks.afterOptimizeTree.call(this.chunks, this.modules); | ||||||
| 
 | 
 | ||||||
| 			while(this.applyPluginsBailResult("optimize-chunk-modules-basic", this.chunks, this.modules) || | 			while(this.hooks.optimizeChunkModulesBasic.call(this.chunks, this.modules) || | ||||||
| 				this.applyPluginsBailResult("optimize-chunk-modules", this.chunks, this.modules) || | 				this.hooks.optimizeChunkModules.call(this.chunks, this.modules) || | ||||||
| 				this.applyPluginsBailResult("optimize-chunk-modules-advanced", this.chunks, this.modules)) { /* empty */ } | 				this.hooks.optimizeChunkModulesAdvanced.call(this.chunks, this.modules)) { /* empty */ } | ||||||
| 			this.applyPlugins2("after-optimize-chunk-modules", this.chunks, this.modules); | 			this.hooks.afterOptimizeChunkModules.call(this.chunks, this.modules); | ||||||
| 
 | 
 | ||||||
| 			const shouldRecord = this.applyPluginsBailResult("should-record") !== false; | 			const shouldRecord = this.hooks.shouldRecord.call() !== false; | ||||||
| 
 | 
 | ||||||
| 			this.applyPlugins2("revive-modules", this.modules, this.records); | 			this.hooks.reviveModules.call(this.modules, this.records); | ||||||
| 			this.applyPlugins1("optimize-module-order", this.modules); | 			this.hooks.optimizeModuleOrder.call(this.modules); | ||||||
| 			this.applyPlugins1("advanced-optimize-module-order", this.modules); | 			this.hooks.advancedOptimizeModuleOrder.call(this.modules); | ||||||
| 			this.applyPlugins1("before-module-ids", this.modules); | 			this.hooks.beforeModuleIds.call(this.modules); | ||||||
| 			this.applyPlugins1("module-ids", this.modules); | 			this.hooks.moduleIds.call(this.modules); | ||||||
| 			this.applyModuleIds(); | 			this.applyModuleIds(); | ||||||
| 			this.applyPlugins1("optimize-module-ids", this.modules); | 			this.hooks.optimizeModuleIds.call(this.modules); | ||||||
| 			this.applyPlugins1("after-optimize-module-ids", this.modules); | 			this.hooks.afterOptimizeModuleIds.call(this.modules); | ||||||
| 
 | 
 | ||||||
| 			this.sortItemsWithModuleIds(); | 			this.sortItemsWithModuleIds(); | ||||||
| 
 | 
 | ||||||
| 			this.applyPlugins2("revive-chunks", this.chunks, this.records); | 			this.hooks.reviveChunks.call(this.chunks, this.records); | ||||||
| 			this.applyPlugins1("optimize-chunk-order", this.chunks); | 			this.hooks.optimizeChunkOrder.call(this.chunks); | ||||||
| 			this.applyPlugins1("before-chunk-ids", this.chunks); | 			this.hooks.beforeChunkIds.call(this.chunks); | ||||||
| 			this.applyChunkIds(); | 			this.applyChunkIds(); | ||||||
| 			this.applyPlugins1("optimize-chunk-ids", this.chunks); | 			this.hooks.optimizeChunkIds.call(this.chunks); | ||||||
| 			this.applyPlugins1("after-optimize-chunk-ids", this.chunks); | 			this.hooks.afterOptimizeChunkIds.call(this.chunks); | ||||||
| 
 | 
 | ||||||
| 			this.sortItemsWithChunkIds(); | 			this.sortItemsWithChunkIds(); | ||||||
| 
 | 
 | ||||||
| 			if(shouldRecord) | 			if(shouldRecord) | ||||||
| 				this.applyPlugins2("record-modules", this.modules, this.records); | 				this.hooks.recordModules.call(this.modules, this.records); | ||||||
| 			if(shouldRecord) | 			if(shouldRecord) | ||||||
| 				this.applyPlugins2("record-chunks", this.chunks, this.records); | 				this.hooks.recordChunks.call(this.chunks, this.records); | ||||||
| 
 | 
 | ||||||
| 			this.applyPlugins0("before-hash"); | 			this.hooks.beforeHash.call(); | ||||||
| 			this.createHash(); | 			this.createHash(); | ||||||
| 			this.applyPlugins0("after-hash"); | 			this.hooks.afterHash.call(); | ||||||
| 
 | 
 | ||||||
| 			if(shouldRecord) | 			if(shouldRecord) | ||||||
| 				this.applyPlugins1("record-hash", this.records); | 				this.hooks.recordHash.call(this.records); | ||||||
| 
 | 
 | ||||||
| 			this.applyPlugins0("before-module-assets"); | 			this.hooks.beforeModuleAssets.call(); | ||||||
| 			this.createModuleAssets(); | 			this.createModuleAssets(); | ||||||
| 			if(this.applyPluginsBailResult("should-generate-chunk-assets") !== false) { | 			if(this.hooks.shouldGenerateChunkAssets.call() !== false) { | ||||||
| 				this.applyPlugins0("before-chunk-assets"); | 				this.hooks.beforeChunkAssets.call(); | ||||||
| 				this.createChunkAssets(); | 				this.createChunkAssets(); | ||||||
| 			} | 			} | ||||||
| 			this.applyPlugins1("additional-chunk-assets", this.chunks); | 			this.hooks.additionalChunkAssets.call(this.chunks); | ||||||
| 			this.summarizeDependencies(); | 			this.summarizeDependencies(); | ||||||
| 			if(shouldRecord) | 			if(shouldRecord) | ||||||
| 				this.applyPlugins2("record", this, this.records); | 				this.hooks.record.call(this, this.records); | ||||||
| 
 | 
 | ||||||
| 			this.applyPluginsAsync("additional-assets", err => { | 			this.hooks.additionalAssets.callAsync(err => { | ||||||
| 				if(err) { | 				if(err) { | ||||||
| 					return callback(err); | 					return callback(err); | ||||||
| 				} | 				} | ||||||
| 				this.applyPluginsAsync("optimize-chunk-assets", this.chunks, err => { | 				this.hooks.optimizeChunkAssets.callAsync(this.chunks, err => { | ||||||
| 					if(err) { | 					if(err) { | ||||||
| 						return callback(err); | 						return callback(err); | ||||||
| 					} | 					} | ||||||
| 					this.applyPlugins1("after-optimize-chunk-assets", this.chunks); | 					this.hooks.afterOptimizeChunkAssets.call(this.chunks); | ||||||
| 					this.applyPluginsAsync("optimize-assets", this.assets, err => { | 					this.hooks.optimizeAssets.callAsync(this.assets, err => { | ||||||
| 						if(err) { | 						if(err) { | ||||||
| 							return callback(err); | 							return callback(err); | ||||||
| 						} | 						} | ||||||
| 						this.applyPlugins1("after-optimize-assets", this.assets); | 						this.hooks.afterOptimizeAssets.call(this.assets); | ||||||
| 						if(this.applyPluginsBailResult("need-additional-seal")) { | 						if(this.hooks.needAdditionalSeal.call()) { | ||||||
| 							this.unseal(); | 							this.unseal(); | ||||||
| 							return this.seal(callback); | 							return this.seal(callback); | ||||||
| 						} | 						} | ||||||
| 						return this.applyPluginsAsync("after-seal", callback); | 						return this.hooks.afterSeal.callAsync(callback); | ||||||
| 					}); | 					}); | ||||||
| 				}); | 				}); | ||||||
| 			}); | 			}); | ||||||
|  | @ -1399,7 +1508,7 @@ class Compilation extends Tapable { | ||||||
| 			} else { | 			} else { | ||||||
| 				this.chunkTemplate.updateHashForChunk(chunkHash, chunk); | 				this.chunkTemplate.updateHashForChunk(chunkHash, chunk); | ||||||
| 			} | 			} | ||||||
| 			this.applyPlugins2("chunk-hash", chunk, chunkHash); | 			this.hooks.chunkHash.call(chunk, chunkHash); | ||||||
| 			chunk.hash = chunkHash.digest(hashDigest); | 			chunk.hash = chunkHash.digest(hashDigest); | ||||||
| 			hash.update(chunk.hash); | 			hash.update(chunk.hash); | ||||||
| 			chunk.renderedHash = chunk.hash.substr(0, hashDigestLength); | 			chunk.renderedHash = chunk.hash.substr(0, hashDigestLength); | ||||||
|  | @ -1427,7 +1536,7 @@ class Compilation extends Tapable { | ||||||
| 				Object.keys(module.assets).forEach((assetName) => { | 				Object.keys(module.assets).forEach((assetName) => { | ||||||
| 					const fileName = this.getPath(assetName); | 					const fileName = this.getPath(assetName); | ||||||
| 					this.assets[fileName] = module.assets[assetName]; | 					this.assets[fileName] = module.assets[assetName]; | ||||||
| 					this.applyPlugins2("module-asset", module, fileName); | 					this.hooks.moduleAsset.call(module, fileName); | ||||||
| 				}); | 				}); | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
|  | @ -1471,7 +1580,7 @@ class Compilation extends Tapable { | ||||||
| 						throw new Error(`Conflict: Multiple assets emit to the same filename ${file}`); | 						throw new Error(`Conflict: Multiple assets emit to the same filename ${file}`); | ||||||
| 					this.assets[file] = source; | 					this.assets[file] = source; | ||||||
| 					chunk.files.push(file); | 					chunk.files.push(file); | ||||||
| 					this.applyPlugins2("chunk-asset", chunk, file); | 					this.hooks.chunkAsset.call(chunk, file); | ||||||
| 				} | 				} | ||||||
| 			} catch(err) { | 			} catch(err) { | ||||||
| 				this.errors.push(new ChunkRenderError(chunk, file || filenameTemplate, err)); | 				this.errors.push(new ChunkRenderError(chunk, file || filenameTemplate, err)); | ||||||
|  | @ -1511,6 +1620,10 @@ class Compilation extends Tapable { | ||||||
| 			chunk.checkConstraints(); | 			chunk.checkConstraints(); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  | 
 | ||||||
|  | 	applyPlugins(name, ...args) { | ||||||
|  | 		this.hooks[name.replace(/[- ]([a-z])/g, match => match[1].toUpperCase())].call(...args); | ||||||
|  | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| Object.defineProperty(Compilation.prototype, "moduleTemplate", { | Object.defineProperty(Compilation.prototype, "moduleTemplate", { | ||||||
|  |  | ||||||
|  | @ -63,7 +63,7 @@ class Watching { | ||||||
| 					this.compiler.emitRecords(err => { | 					this.compiler.emitRecords(err => { | ||||||
| 						if(err) return this._done(err); | 						if(err) return this._done(err); | ||||||
| 
 | 
 | ||||||
| 						if(compilation.applyPluginsBailResult("need-additional-pass")) { | 						if(compilation.hooks.needAdditionalPass.call()) { | ||||||
| 							compilation.needAdditionalPass = true; | 							compilation.needAdditionalPass = true; | ||||||
| 
 | 
 | ||||||
| 							const stats = new Stats(compilation); | 							const stats = new Stats(compilation); | ||||||
|  | @ -298,7 +298,7 @@ class Compiler extends Tapable { | ||||||
| 			this.emitAssets(compilation, err => { | 			this.emitAssets(compilation, err => { | ||||||
| 				if(err) return callback(err); | 				if(err) return callback(err); | ||||||
| 
 | 
 | ||||||
| 				if(compilation.applyPluginsBailResult("need-additional-pass")) { | 				if(compilation.hooks.needAdditionalPass.call()) { | ||||||
| 					compilation.needAdditionalPass = true; | 					compilation.needAdditionalPass = true; | ||||||
| 
 | 
 | ||||||
| 					const stats = new Stats(compilation); | 					const stats = new Stats(compilation); | ||||||
|  | @ -496,7 +496,7 @@ class Compiler extends Tapable { | ||||||
| 		} | 		} | ||||||
| 		childCompiler.parentCompilation = compilation; | 		childCompiler.parentCompilation = compilation; | ||||||
| 
 | 
 | ||||||
| 		compilation.applyPlugins("child-compiler", childCompiler, compilerName, compilerIndex); | 		compilation.hooks.childCompiler.call(childCompiler, compilerName, compilerIndex); | ||||||
| 
 | 
 | ||||||
| 		return childCompiler; | 		return childCompiler; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -162,7 +162,7 @@ class NormalModule extends Module { | ||||||
| 			fs: fs, | 			fs: fs, | ||||||
| 		}; | 		}; | ||||||
| 
 | 
 | ||||||
| 		compilation.applyPlugins("normal-module-loader", loaderContext, this); | 		compilation.hooks.normalModuleLoader.call(loaderContext, this); | ||||||
| 		if(options.loader) | 		if(options.loader) | ||||||
| 			Object.assign(loaderContext, options.loader); | 			Object.assign(loaderContext, options.loader); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue