@@ -250,6 +250,8 @@ export async function createOptimizeDepsRun(
250
250
JSON . stringify ( { type : 'module' } )
251
251
)
252
252
253
+ let newBrowserHash : string
254
+
253
255
let deps : Record < string , string >
254
256
if ( ! newDeps ) {
255
257
// Initial optimizeDeps at server start. Perform a fast scan using esbuild to
@@ -281,7 +283,10 @@ export async function createOptimizeDepsRun(
281
283
}
282
284
283
285
// update browser hash
284
- metadata . browserHash = getOptimizedBrowserHash ( metadata . hash , deps )
286
+ newBrowserHash = metadata . browserHash = getOptimizedBrowserHash (
287
+ metadata . hash ,
288
+ deps
289
+ )
285
290
286
291
// We generate the mapping of dependency ids to their cache file location
287
292
// before processing the dependencies with esbuild. This allow us to continue
@@ -291,7 +296,7 @@ export async function createOptimizeDepsRun(
291
296
metadata . optimized [ id ] = {
292
297
file : getOptimizedDepPath ( id , config ) ,
293
298
src : entry ,
294
- browserHash : metadata . browserHash ,
299
+ browserHash : newBrowserHash ,
295
300
processing : processing . promise
296
301
}
297
302
}
@@ -302,9 +307,10 @@ export async function createOptimizeDepsRun(
302
307
303
308
metadata . optimized = newDeps
304
309
305
- // update global browser hash, but keep newDeps individual hashs until we know
310
+ // For reruns keep current global browser hash and newDeps individual hashes until we know
306
311
// if files are stable so we can avoid a full page reload
307
- metadata . browserHash = getOptimizedBrowserHash ( metadata . hash , deps )
312
+ metadata . browserHash = currentData ! . browserHash
313
+ newBrowserHash = getOptimizedBrowserHash ( metadata . hash , deps )
308
314
}
309
315
310
316
return { metadata, run : prebundleDeps }
@@ -499,8 +505,9 @@ export async function createOptimizeDepsRun(
499
505
// New deps that ended up with a different hash replaced while doing analysis import are going to
500
506
// return a not found so the browser doesn't cache them. And will properly get loaded after the reload
501
507
for ( const id in deps ) {
502
- metadata . optimized [ id ] . browserHash = metadata . browserHash
508
+ metadata . optimized [ id ] . browserHash = newBrowserHash
503
509
}
510
+ metadata . browserHash = newBrowserHash
504
511
}
505
512
506
513
// Write metadata file, delete `deps` folder and rename the new `processing` folder to `deps` in sync
0 commit comments