Skip to content

Commit 70867d6

Browse files
authored
fix(css): include chunk groups in conflicting order warning (#20660)
1 parent a475512 commit 70867d6

3 files changed

Lines changed: 37 additions & 5 deletions

File tree

.changeset/brown-goats-kiss.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"webpack": patch
3+
---
4+
5+
Included fragment groups in the conflicting order warning for CSS.

lib/css/CssModulesPlugin.js

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -770,18 +770,43 @@ class CssModulesPlugin {
770770
break;
771771
}
772772
if (hasFailed) {
773+
const fallbackModule = /** @type {Module} */ (hasFailed);
774+
775+
const fallbackIssuers = [
776+
...compilation.moduleGraph
777+
.getIncomingConnectionsByOriginModule(fallbackModule)
778+
.keys()
779+
].filter(Boolean);
780+
781+
const selectedIssuers = [
782+
...compilation.moduleGraph
783+
.getIncomingConnectionsByOriginModule(selectedModule)
784+
.keys()
785+
].filter(Boolean);
786+
787+
const allIssuers = [
788+
...new Set([...fallbackIssuers, ...selectedIssuers])
789+
]
790+
.map((m) =>
791+
/** @type {Module} */ (m).readableIdentifier(
792+
compilation.requestShortener
793+
)
794+
)
795+
.sort();
796+
773797
// There is a not resolve-able conflict with the selectedModule
774-
// TODO print better warning
775798
compilation.warnings.push(
776799
new WebpackError(
777-
`chunk ${chunk.name || chunk.id}\nConflicting order between ${hasFailed.readableIdentifier(
800+
`chunk ${
801+
chunk.name || chunk.id
802+
}\nConflicting order between ${fallbackModule.readableIdentifier(
778803
compilation.requestShortener
779804
)} and ${selectedModule.readableIdentifier(
780805
compilation.requestShortener
781-
)}`
806+
)}\nCSS modules are imported in:\n - ${allIssuers.join("\n - ")}`
782807
)
783808
);
784-
selectedModule = /** @type {Module} */ (hasFailed);
809+
selectedModule = fallbackModule;
785810
}
786811
// Insert the selected module into the final modules list
787812
finalModules.push(selectedModule);
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
"use strict";
22

33
module.exports = [
4-
[/Conflicting order between css \.\/b\.css and css \.\/c\.css/]
4+
[
5+
/Conflicting order between css \.\/b\.css and css \.\/c\.css\nCSS modules are imported in:\n {2}- css \.\/lazy1\.css\n {2}- css \.\/lazy2\.css/
6+
]
57
];

0 commit comments

Comments
 (0)