Skip to content

Commit 55ad52f

Browse files
committed
report progress for both steps
1 parent 91f961b commit 55ad52f

File tree

1 file changed

+37
-26
lines changed

1 file changed

+37
-26
lines changed

lib/SourceMapDevToolPlugin.js

Lines changed: 37 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)