@@ -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 ) ;
0 commit comments