@@ -365,7 +365,7 @@ export function buildWebpackBrowser(
365
365
if ( actionOptions . sourceMaps ) {
366
366
try {
367
367
map = fs . readFileSync ( filename + '.map' , 'utf8' ) ;
368
- if ( es5Polyfills ) {
368
+ if ( es5Polyfills || i18n . shouldInline ) {
369
369
fs . unlinkSync ( filename + '.map' ) ;
370
370
}
371
371
} catch { }
@@ -374,6 +374,10 @@ export function buildWebpackBrowser(
374
374
if ( es5Polyfills ) {
375
375
fs . unlinkSync ( filename ) ;
376
376
filename = filename . replace ( / \- e s 2 0 \d { 2 } / , '' ) ;
377
+ } else if ( i18n . shouldInline ) {
378
+ // Original files must be deleted with i18n to avoid the original files from
379
+ // being copied over the translated files when copying the project assets.
380
+ fs . unlinkSync ( filename ) ;
377
381
}
378
382
379
383
const es2015Polyfills = file . file . startsWith ( 'polyfills-es20' ) ;
@@ -391,6 +395,8 @@ export function buildWebpackBrowser(
391
395
runtime : file . file . startsWith ( 'runtime' ) ,
392
396
ignoreOriginal : es5Polyfills ,
393
397
optimizeOnly : es2015Polyfills ,
398
+ // When using i18n, file results are kept in memory for further processing
399
+ memoryMode : i18n . shouldInline ,
394
400
} ) ;
395
401
396
402
// ES2015 polyfills are only optimized; optimization check was performed above
@@ -451,41 +457,32 @@ export function buildWebpackBrowser(
451
457
if ( i18n . shouldInline ) {
452
458
spinner . start ( 'Generating localized bundles...' ) ;
453
459
const inlineActions : InlineOptions [ ] = [ ] ;
454
- const processedFiles = new Set < string > ( ) ;
455
460
for ( const result of processResults ) {
456
461
if ( result . original ) {
457
462
inlineActions . push ( {
458
463
filename : path . basename ( result . original . filename ) ,
459
- code : fs . readFileSync ( result . original . filename , 'utf8' ) ,
460
- map :
461
- result . original . map &&
462
- fs . readFileSync ( result . original . map . filename , 'utf8' ) ,
464
+ // Memory mode is always enabled for i18n
465
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
466
+ code : result . original . content ! ,
467
+ map : result . original . map ?. content ,
463
468
outputPath : baseOutputPath ,
464
469
es5 : false ,
465
470
missingTranslation : options . i18nMissingTranslation ,
466
471
setLocale : result . name === mainChunkId ,
467
472
} ) ;
468
- processedFiles . add ( result . original . filename ) ;
469
- if ( result . original . map ) {
470
- processedFiles . add ( result . original . map . filename ) ;
471
- }
472
473
}
473
474
if ( result . downlevel ) {
474
475
inlineActions . push ( {
475
476
filename : path . basename ( result . downlevel . filename ) ,
476
- code : fs . readFileSync ( result . downlevel . filename , 'utf8' ) ,
477
- map :
478
- result . downlevel . map &&
479
- fs . readFileSync ( result . downlevel . map . filename , 'utf8' ) ,
477
+ // Memory mode is always enabled for i18n
478
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
479
+ code : result . downlevel . content ! ,
480
+ map : result . downlevel . map ?. content ,
480
481
outputPath : baseOutputPath ,
481
482
es5 : true ,
482
483
missingTranslation : options . i18nMissingTranslation ,
483
484
setLocale : result . name === mainChunkId ,
484
485
} ) ;
485
- processedFiles . add ( result . downlevel . filename ) ;
486
- if ( result . downlevel . map ) {
487
- processedFiles . add ( result . downlevel . map . filename ) ;
488
- }
489
486
}
490
487
}
491
488
@@ -520,9 +517,6 @@ export function buildWebpackBrowser(
520
517
glob : '**/*' ,
521
518
input : webpackOutputPath ,
522
519
output : '' ,
523
- ignore : [ ...processedFiles ] . map ( ( f ) =>
524
- path . relative ( webpackOutputPath , f ) ,
525
- ) ,
526
520
} ,
527
521
] ,
528
522
Array . from ( outputPaths . values ( ) ) ,
0 commit comments