Skip to content

Commit db4fd41

Browse files
committed
fix module name conflicts
1 parent e5ee3be commit db4fd41

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

lib/NamedModulesPlugin.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,31 @@ class NamedModulesPlugin {
1212
apply(compiler) {
1313
compiler.hooks.compilation.tap("NamedModulesPlugin", compilation => {
1414
compilation.hooks.beforeModuleIds.tap("NamedModulesPlugin", modules => {
15+
let namedModules = {};
16+
1517
for (const module of modules) {
1618
if (module.id === null && module.libIdent) {
1719
module.id = module.libIdent({
1820
context: this.options.context || compiler.options.context
1921
});
2022
}
23+
24+
if (module.id) {
25+
(namedModules[module.id] && namedModules[module.id].push(module)) ||
26+
(namedModules[module.id] = Array.of(module));
27+
}
2128
}
29+
30+
Object.keys(namedModules).forEach(key => {
31+
const namedModule = namedModules[key];
32+
if (namedModule.length > 1) {
33+
namedModule.forEach(module => {
34+
if (module.issuer && module.issuer.id) {
35+
module.id = `${module.issuer.id}~${module.id}`;
36+
}
37+
});
38+
}
39+
});
2240
});
2341
});
2442
}

0 commit comments

Comments
 (0)