@@ -14,6 +14,7 @@ import {
14
14
DEFAULT_CONFIG_NAME ,
15
15
ENTRY_EXTENSIONS_PATTERN ,
16
16
JS_EXTENSIONS_PATTERN ,
17
+ RSLIB_ENTRY_QUERY ,
17
18
SWC_HELPERS ,
18
19
} from './constant' ;
19
20
import {
@@ -23,13 +24,15 @@ import {
23
24
cssExternalHandler ,
24
25
isCssGlobalFile ,
25
26
} from './css/cssConfig' ;
27
+ import { composeEntryChunkConfig } from './plugins/EntryChunkPlugin' ;
26
28
import {
27
29
pluginCjsImportMetaUrlShim ,
28
30
pluginEsmRequireShim ,
29
31
} from './plugins/shims' ;
30
32
import type {
31
33
AutoExternal ,
32
34
BannerAndFooter ,
35
+ DeepRequired ,
33
36
Format ,
34
37
LibConfig ,
35
38
LibOnlyConfig ,
@@ -598,7 +601,10 @@ const composeFormatConfig = ({
598
601
}
599
602
} ;
600
603
601
- const composeShimsConfig = ( format : Format , shims ?: Shims ) : RsbuildConfig => {
604
+ const composeShimsConfig = (
605
+ format : Format ,
606
+ shims ?: Shims ,
607
+ ) : { rsbuildConfig : RsbuildConfig ; enabledShims : DeepRequired < Shims > } => {
602
608
const resolvedShims = {
603
609
cjs : {
604
610
'import.meta.url' : shims ?. cjs ?. [ 'import.meta.url' ] ?? true ,
@@ -610,9 +616,27 @@ const composeShimsConfig = (format: Format, shims?: Shims): RsbuildConfig => {
610
616
} ,
611
617
} ;
612
618
619
+ const enabledShims = {
620
+ cjs :
621
+ format === 'cjs'
622
+ ? resolvedShims . cjs
623
+ : {
624
+ 'import.meta.url' : false ,
625
+ } ,
626
+ esm :
627
+ format === 'esm'
628
+ ? resolvedShims . esm
629
+ : {
630
+ __filename : false ,
631
+ __dirname : false ,
632
+ require : false ,
633
+ } ,
634
+ } ;
635
+
636
+ let rsbuildConfig : RsbuildConfig = { } ;
613
637
switch ( format ) {
614
- case 'esm' :
615
- return {
638
+ case 'esm' : {
639
+ rsbuildConfig = {
616
640
tools : {
617
641
rspack : {
618
642
node : {
@@ -626,19 +650,23 @@ const composeShimsConfig = (format: Format, shims?: Shims): RsbuildConfig => {
626
650
Boolean ,
627
651
) ,
628
652
} ;
653
+ break ;
654
+ }
629
655
case 'cjs' :
630
- return {
656
+ rsbuildConfig = {
631
657
plugins : [
632
658
resolvedShims . cjs [ 'import.meta.url' ] && pluginCjsImportMetaUrlShim ( ) ,
633
659
] . filter ( Boolean ) ,
634
660
} ;
661
+ break ;
635
662
case 'umd' :
636
- return { } ;
637
663
case 'mf' :
638
- return { } ;
664
+ break ;
639
665
default :
640
666
throw new Error ( `Unsupported format: ${ format } ` ) ;
641
667
}
668
+
669
+ return { rsbuildConfig, enabledShims } ;
642
670
} ;
643
671
644
672
export const composeModuleImportWarn = ( request : string ) : string => {
@@ -746,6 +774,16 @@ const composeSyntaxConfig = (
746
774
} ;
747
775
} ;
748
776
777
+ const appendEntryQuery = (
778
+ entry : NonNullable < RsbuildConfig [ 'source' ] > [ 'entry' ] ,
779
+ ) : NonNullable < RsbuildConfig [ 'source' ] > [ 'entry' ] => {
780
+ const newEntry : Record < string , string > = { } ;
781
+ for ( const key in entry ) {
782
+ newEntry [ key ] = `${ entry [ key ] } ?${ RSLIB_ENTRY_QUERY } ` ;
783
+ }
784
+ return newEntry ;
785
+ } ;
786
+
749
787
const composeEntryConfig = async (
750
788
entries : NonNullable < RsbuildConfig [ 'source' ] > [ 'entry' ] ,
751
789
bundle : LibConfig [ 'bundle' ] ,
@@ -760,7 +798,7 @@ const composeEntryConfig = async (
760
798
return {
761
799
entryConfig : {
762
800
source : {
763
- entry : entries ,
801
+ entry : appendEntryQuery ( entries ) ,
764
802
} ,
765
803
} ,
766
804
lcp : null ,
@@ -836,7 +874,7 @@ const composeEntryConfig = async (
836
874
const lcp = await calcLongestCommonPath ( Object . values ( resolvedEntries ) ) ;
837
875
const entryConfig : RsbuildConfig = {
838
876
source : {
839
- entry : resolvedEntries ,
877
+ entry : appendEntryQuery ( resolvedEntries ) ,
840
878
} ,
841
879
} ;
842
880
@@ -1000,7 +1038,7 @@ const composeTargetConfig = (
1000
1038
const composeExternalHelpersConfig = (
1001
1039
externalHelpers : boolean ,
1002
1040
pkgJson ?: PkgJson ,
1003
- ) : RsbuildConfig => {
1041
+ ) => {
1004
1042
let defaultConfig = {
1005
1043
tools : {
1006
1044
swc : {
@@ -1057,7 +1095,10 @@ async function composeLibRsbuildConfig(config: LibConfig, configPath: string) {
1057
1095
redirect = { } ,
1058
1096
umdName,
1059
1097
} = config ;
1060
- const shimsConfig = composeShimsConfig ( format ! , shims ) ;
1098
+ const { rsbuildConfig : shimsConfig , enabledShims } = composeShimsConfig (
1099
+ format ! ,
1100
+ shims ,
1101
+ ) ;
1061
1102
const formatConfig = composeFormatConfig ( {
1062
1103
format : format ! ,
1063
1104
pkgJson : pkgJson ! ,
@@ -1100,6 +1141,9 @@ async function composeLibRsbuildConfig(config: LibConfig, configPath: string) {
1100
1141
cssModulesAuto ,
1101
1142
) ;
1102
1143
const cssConfig = composeCssConfig ( lcp , config . bundle ) ;
1144
+ const entryChunkConfig = composeEntryChunkConfig ( {
1145
+ enabledImportMetaUrlShim : enabledShims . cjs [ 'import.meta.url' ] ,
1146
+ } ) ;
1103
1147
const dtsConfig = await composeDtsConfig ( config , dtsExtension ) ;
1104
1148
const externalsWarnConfig = composeExternalsWarnConfig (
1105
1149
format ! ,
@@ -1127,6 +1171,7 @@ async function composeLibRsbuildConfig(config: LibConfig, configPath: string) {
1127
1171
targetConfig ,
1128
1172
entryConfig ,
1129
1173
cssConfig ,
1174
+ entryChunkConfig ,
1130
1175
minifyConfig ,
1131
1176
dtsConfig ,
1132
1177
bannerFooterConfig ,
0 commit comments