12345678910111213141516171819202122232425262728293031323334353637 |
- /*
- 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;
|