1 |
|
2 |
|
3 |
|
4 |
|
5 | "use strict";
|
6 |
|
7 | const CaseSensitiveModulesWarning = require("./CaseSensitiveModulesWarning");
|
8 |
|
9 | class WarnCaseSensitiveModulesPlugin {
|
10 | apply(compiler) {
|
11 | compiler.hooks.compilation.tap(
|
12 | "WarnCaseSensitiveModulesPlugin",
|
13 | compilation => {
|
14 | compilation.hooks.seal.tap("WarnCaseSensitiveModulesPlugin", () => {
|
15 | const moduleWithoutCase = new Map();
|
16 | for (const module of compilation.modules) {
|
17 | const identifier = module.identifier().toLowerCase();
|
18 | const array = moduleWithoutCase.get(identifier);
|
19 | if (array) {
|
20 | array.push(module);
|
21 | } else {
|
22 | moduleWithoutCase.set(identifier, [module]);
|
23 | }
|
24 | }
|
25 | for (const pair of moduleWithoutCase) {
|
26 | const array = pair[1];
|
27 | if (array.length > 1) {
|
28 | compilation.warnings.push(new CaseSensitiveModulesWarning(array));
|
29 | }
|
30 | }
|
31 | });
|
32 | }
|
33 | );
|
34 | }
|
35 | }
|
36 |
|
37 | module.exports = WarnCaseSensitiveModulesPlugin;
|