mirror of https://github.com/webpack/webpack.git
				
				
				
			add resolve dependencies to compilation
This commit is contained in:
		
							parent
							
								
									ddd3745942
								
							
						
					
					
						commit
						a2601eb5c8
					
				|  | @ -7,16 +7,18 @@ | ||||||
| 
 | 
 | ||||||
| const ModuleNotFoundError = require("../ModuleNotFoundError"); | const ModuleNotFoundError = require("../ModuleNotFoundError"); | ||||||
| const RuntimeGlobals = require("../RuntimeGlobals"); | const RuntimeGlobals = require("../RuntimeGlobals"); | ||||||
|  | const { | ||||||
|  | 	toConstantDependency, | ||||||
|  | 	evaluateToString | ||||||
|  | } = require("../javascript/JavascriptParserHelpers"); | ||||||
|  | const LazySet = require("../util/LazySet"); | ||||||
| const OverridableModule = require("./OverridableModule"); | const OverridableModule = require("./OverridableModule"); | ||||||
| const OverridableOriginalDependency = require("./OverridableOriginalDependency"); | const OverridableOriginalDependency = require("./OverridableOriginalDependency"); | ||||||
| const OverridableOriginalModuleFactory = require("./OverridableOriginalModuleFactory"); | const OverridableOriginalModuleFactory = require("./OverridableOriginalModuleFactory"); | ||||||
| const OverridablesRuntimeModule = require("./OverridablesRuntimeModule"); | const OverridablesRuntimeModule = require("./OverridablesRuntimeModule"); | ||||||
| const parseOptions = require("./parseOptions"); | const parseOptions = require("./parseOptions"); | ||||||
| const { |  | ||||||
| 	toConstantDependency, |  | ||||||
| 	evaluateToString |  | ||||||
| } = require("../javascript/JavascriptParserHelpers"); |  | ||||||
| 
 | 
 | ||||||
|  | /** @typedef {import("enhanced-resolve").ResolveContext} ResolveContext */ | ||||||
| /** @typedef {import("../Compiler")} Compiler */ | /** @typedef {import("../Compiler")} Compiler */ | ||||||
| 
 | 
 | ||||||
| class OverridablesPlugin { | class OverridablesPlugin { | ||||||
|  | @ -37,6 +39,14 @@ class OverridablesPlugin { | ||||||
| 				); | 				); | ||||||
| 
 | 
 | ||||||
| 				const resolvedOverridables = new Map(); | 				const resolvedOverridables = new Map(); | ||||||
|  | 				const resolveContext = { | ||||||
|  | 					/** @type {LazySet<string>} */ | ||||||
|  | 					fileDependencies: new LazySet(), | ||||||
|  | 					/** @type {LazySet<string>} */ | ||||||
|  | 					contextDependencies: new LazySet(), | ||||||
|  | 					/** @type {LazySet<string>} */ | ||||||
|  | 					missingDependencies: new LazySet() | ||||||
|  | 				}; | ||||||
| 				const promise = Promise.all( | 				const promise = Promise.all( | ||||||
| 					this.overridables.map(([key, request]) => { | 					this.overridables.map(([key, request]) => { | ||||||
| 						const resolver = compilation.resolverFactory.get("normal"); | 						const resolver = compilation.resolverFactory.get("normal"); | ||||||
|  | @ -45,7 +55,7 @@ class OverridablesPlugin { | ||||||
| 								{}, | 								{}, | ||||||
| 								compiler.context, | 								compiler.context, | ||||||
| 								request, | 								request, | ||||||
| 								{}, | 								resolveContext, | ||||||
| 								(err, result) => { | 								(err, result) => { | ||||||
| 									if (err) { | 									if (err) { | ||||||
| 										compilation.errors.push( | 										compilation.errors.push( | ||||||
|  | @ -61,7 +71,15 @@ class OverridablesPlugin { | ||||||
| 							); | 							); | ||||||
| 						}); | 						}); | ||||||
| 					}) | 					}) | ||||||
|  | 				).then(() => { | ||||||
|  | 					compilation.contextDependencies.addAll( | ||||||
|  | 						resolveContext.contextDependencies | ||||||
| 					); | 					); | ||||||
|  | 					compilation.fileDependencies.addAll(resolveContext.fileDependencies); | ||||||
|  | 					compilation.missingDependencies.addAll( | ||||||
|  | 						resolveContext.missingDependencies | ||||||
|  | 					); | ||||||
|  | 				}); | ||||||
| 				normalModuleFactory.hooks.afterResolve.tapAsync( | 				normalModuleFactory.hooks.afterResolve.tapAsync( | ||||||
| 					"OverridablesPlugin", | 					"OverridablesPlugin", | ||||||
| 					(resolveData, callback) => { | 					(resolveData, callback) => { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue