You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							37 lines
						
					
					
						
							1016 B
						
					
					
				
			
		
		
	
	
							37 lines
						
					
					
						
							1016 B
						
					
					
				/* | 
						|
	MIT License http://www.opensource.org/licenses/mit-license.php | 
						|
	Author Tobias Koppers @sokra | 
						|
*/ | 
						|
"use strict"; | 
						|
 | 
						|
const CaseSensitiveModulesWarning = require("./CaseSensitiveModulesWarning"); | 
						|
 | 
						|
class WarnCaseSensitiveModulesPlugin { | 
						|
	apply(compiler) { | 
						|
		compiler.hooks.compilation.tap( | 
						|
			"WarnCaseSensitiveModulesPlugin", | 
						|
			compilation => { | 
						|
				compilation.hooks.seal.tap("WarnCaseSensitiveModulesPlugin", () => { | 
						|
					const moduleWithoutCase = new Map(); | 
						|
					for (const module of compilation.modules) { | 
						|
						const identifier = module.identifier().toLowerCase(); | 
						|
						const array = moduleWithoutCase.get(identifier); | 
						|
						if (array) { | 
						|
							array.push(module); | 
						|
						} else { | 
						|
							moduleWithoutCase.set(identifier, [module]); | 
						|
						} | 
						|
					} | 
						|
					for (const pair of moduleWithoutCase) { | 
						|
						const array = pair[1]; | 
						|
						if (array.length > 1) { | 
						|
							compilation.warnings.push(new CaseSensitiveModulesWarning(array)); | 
						|
						} | 
						|
					} | 
						|
				}); | 
						|
			} | 
						|
		); | 
						|
	} | 
						|
} | 
						|
 | 
						|
module.exports = WarnCaseSensitiveModulesPlugin;
 | 
						|
 |