@@ -365,7 +365,7 @@ export function buildWebpackBrowser(
365365 if ( actionOptions . sourceMaps ) {
366366 try {
367367 map = fs . readFileSync ( filename + '.map' , 'utf8' ) ;
368- if ( es5Polyfills ) {
368+ if ( es5Polyfills || i18n . shouldInline ) {
369369 fs . unlinkSync ( filename + '.map' ) ;
370370 }
371371 } catch { }
@@ -374,6 +374,10 @@ export function buildWebpackBrowser(
374374 if ( es5Polyfills ) {
375375 fs . unlinkSync ( filename ) ;
376376 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 ) ;
377381 }
378382
379383 const es2015Polyfills = file . file . startsWith ( 'polyfills-es20' ) ;
@@ -391,6 +395,8 @@ export function buildWebpackBrowser(
391395 runtime : file . file . startsWith ( 'runtime' ) ,
392396 ignoreOriginal : es5Polyfills ,
393397 optimizeOnly : es2015Polyfills ,
398+ // When using i18n, file results are kept in memory for further processing
399+ memoryMode : i18n . shouldInline ,
394400 } ) ;
395401
396402 // ES2015 polyfills are only optimized; optimization check was performed above
@@ -451,41 +457,32 @@ export function buildWebpackBrowser(
451457 if ( i18n . shouldInline ) {
452458 spinner . start ( 'Generating localized bundles...' ) ;
453459 const inlineActions : InlineOptions [ ] = [ ] ;
454- const processedFiles = new Set < string > ( ) ;
455460 for ( const result of processResults ) {
456461 if ( result . original ) {
457462 inlineActions . push ( {
458463 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 ,
463468 outputPath : baseOutputPath ,
464469 es5 : false ,
465470 missingTranslation : options . i18nMissingTranslation ,
466471 setLocale : result . name === mainChunkId ,
467472 } ) ;
468- processedFiles . add ( result . original . filename ) ;
469- if ( result . original . map ) {
470- processedFiles . add ( result . original . map . filename ) ;
471- }
472473 }
473474 if ( result . downlevel ) {
474475 inlineActions . push ( {
475476 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 ,
480481 outputPath : baseOutputPath ,
481482 es5 : true ,
482483 missingTranslation : options . i18nMissingTranslation ,
483484 setLocale : result . name === mainChunkId ,
484485 } ) ;
485- processedFiles . add ( result . downlevel . filename ) ;
486- if ( result . downlevel . map ) {
487- processedFiles . add ( result . downlevel . map . filename ) ;
488- }
489486 }
490487 }
491488
@@ -520,9 +517,6 @@ export function buildWebpackBrowser(
520517 glob : '**/*' ,
521518 input : webpackOutputPath ,
522519 output : '' ,
523- ignore : [ ...processedFiles ] . map ( ( f ) =>
524- path . relative ( webpackOutputPath , f ) ,
525- ) ,
526520 } ,
527521 ] ,
528522 Array . from ( outputPaths . values ( ) ) ,
0 commit comments