@@ -87,39 +87,50 @@ class SourceMapDevToolPlugin {
8787 context : true
8888 } , ( context , chunks ) => {
8989 const moduleToSourceNameMapping = new Map ( ) ;
90- const tasks = [ ] ;
9190 const reportProgress = ( context && context . reportProgress ) ? context . reportProgress : ( ) => { } ;
9291
93- reportProgress ( 0.0 , "Generation starting..." ) ;
92+ const files = [ ] ;
9493 chunks . forEach ( chunk => {
9594 chunk . files . forEach ( file => {
9695 if ( matchObject ( file ) ) {
97- const task = getTaskForFile ( file , chunk , options , compilation ) ;
98-
99- if ( task ) {
100- const modules = task . sourceMap . sources . map ( source => {
101- const module = compilation . findModule ( source ) ;
102- return module || source ;
103- } ) ;
104-
105- for ( let idx = 0 ; idx < modules . length ; idx ++ ) {
106- const module = modules [ idx ] ;
107- if ( ! moduleToSourceNameMapping . get ( module ) ) {
108- moduleToSourceNameMapping . set ( module , ModuleFilenameHelpers . createFilename ( module , {
109- moduleFilenameTemplate : moduleFilenameTemplate ,
110- namespace : namespace
111- } , requestShortener ) ) ;
112- }
113- }
114-
115- task . modules = modules ;
116-
117- tasks . push ( task ) ;
118- }
96+ files . push ( {
97+ file,
98+ chunk
99+ } ) ;
119100 }
120101 } ) ;
121102 } ) ;
122103
104+ reportProgress ( 0.0 ) ;
105+ const tasks = [ ] ;
106+ files . forEach ( ( { file, chunk } , idx ) => {
107+ reportProgress ( 0.5 * idx / files . length , file , "generate SourceMap" ) ;
108+ const task = getTaskForFile ( file , chunk , options , compilation ) ;
109+
110+ if ( task ) {
111+ const modules = task . sourceMap . sources . map ( source => {
112+ const module = compilation . findModule ( source ) ;
113+ return module || source ;
114+ } ) ;
115+
116+ for ( let idx = 0 ; idx < modules . length ; idx ++ ) {
117+ const module = modules [ idx ] ;
118+ if ( ! moduleToSourceNameMapping . get ( module ) ) {
119+ moduleToSourceNameMapping . set ( module , ModuleFilenameHelpers . createFilename ( module , {
120+ moduleFilenameTemplate : moduleFilenameTemplate ,
121+ namespace : namespace
122+ } , requestShortener ) ) ;
123+ }
124+ }
125+
126+ task . modules = modules ;
127+
128+ tasks . push ( task ) ;
129+ }
130+
131+ } ) ;
132+
133+ reportProgress ( 0.5 , "resolve sources" ) ;
123134 const usedNamesSet = new Set ( moduleToSourceNameMapping . values ( ) ) ;
124135 const conflictDetectionSet = new Set ( ) ;
125136
@@ -161,7 +172,7 @@ class SourceMapDevToolPlugin {
161172 usedNamesSet . add ( sourceName ) ;
162173 }
163174 tasks . forEach ( ( task , index ) => {
164- reportProgress ( index / tasks . length , `Generating sourcemap ${ index + 1 } of ${ tasks . length } : ${ task . file } ` ) ;
175+ reportProgress ( 0.5 + 0.5 * index / tasks . length , task . file , "attach SourceMap" ) ;
165176 const chunk = task . chunk ;
166177 const file = task . file ;
167178 const asset = task . asset ;
@@ -214,7 +225,7 @@ class SourceMapDevToolPlugin {
214225 ) ;
215226 }
216227 } ) ;
217- reportProgress ( 1.0 , "Finished" ) ;
228+ reportProgress ( 1.0 ) ;
218229 } ) ;
219230 } ) ;
220231 }
0 commit comments