@@ -43,16 +43,11 @@ const isDebugEnabled = _debug('vite:deps').enabled
43
43
44
44
const jsExtensionRE = / \. j s $ / i
45
45
const jsMapExtensionRE = / \. j s \. m a p $ / i
46
- const reExportRE = / e x p o r t \s + \* \s + f r o m /
47
46
48
47
export type ExportsData = {
49
48
hasImports : boolean
50
49
// exported names (for `export { a as b }`, `b` is exported name)
51
50
exports : readonly string [ ]
52
- facade : boolean
53
- // es-module-lexer has a facade detection but isn't always accurate for our
54
- // use case when the module has default export
55
- hasReExports ?: boolean
56
51
// hint if the dep requires loading as jsx
57
52
jsxLoader ?: boolean
58
53
}
@@ -731,7 +726,7 @@ async function prepareEsbuildOptimizerRun(
731
726
const src = depsInfo [ id ] . src !
732
727
const exportsData = await ( depsInfo [ id ] . exportsData ??
733
728
extractExportsData ( src , config , ssr ) )
734
- if ( exportsData . jsxLoader ) {
729
+ if ( exportsData . jsxLoader && ! esbuildOptions . loader ?. [ '.js' ] ) {
735
730
// Ensure that optimization won't fail by defaulting '.js' to the JSX parser.
736
731
// This is useful for packages such as Gatsby.
737
732
esbuildOptions . loader = {
@@ -1152,11 +1147,10 @@ export async function extractExportsData(
1152
1147
write : false ,
1153
1148
format : 'esm' ,
1154
1149
} )
1155
- const [ imports , exports , facade ] = parse ( result . outputFiles [ 0 ] . text )
1150
+ const [ imports , exports ] = parse ( result . outputFiles [ 0 ] . text )
1156
1151
return {
1157
1152
hasImports : imports . length > 0 ,
1158
1153
exports : exports . map ( ( e ) => e . n ) ,
1159
- facade,
1160
1154
}
1161
1155
}
1162
1156
@@ -1174,25 +1168,14 @@ export async function extractExportsData(
1174
1168
const transformed = await transformWithEsbuild ( entryContent , filePath , {
1175
1169
loader,
1176
1170
} )
1177
- // Ensure that optimization won't fail by defaulting '.js' to the JSX parser.
1178
- // This is useful for packages such as Gatsby.
1179
- esbuildOptions . loader = {
1180
- '.js' : 'jsx' ,
1181
- ...esbuildOptions . loader ,
1182
- }
1183
1171
parseResult = parse ( transformed . code )
1184
1172
usedJsxLoader = true
1185
1173
}
1186
1174
1187
- const [ imports , exports , facade ] = parseResult
1175
+ const [ imports , exports ] = parseResult
1188
1176
const exportsData : ExportsData = {
1189
1177
hasImports : imports . length > 0 ,
1190
1178
exports : exports . map ( ( e ) => e . n ) ,
1191
- facade,
1192
- hasReExports : imports . some ( ( { ss, se } ) => {
1193
- const exp = entryContent . slice ( ss , se )
1194
- return reExportRE . test ( exp )
1195
- } ) ,
1196
1179
jsxLoader : usedJsxLoader ,
1197
1180
}
1198
1181
return exportsData
0 commit comments