@@ -192,7 +192,9 @@ async function computeEntries(config: ResolvedConfig) {
192192 // Non-supported entry file types and virtual files should not be scanned for
193193 // dependencies.
194194 entries = entries . filter (
195- ( entry ) => isScannable ( entry ) && fs . existsSync ( entry ) ,
195+ ( entry ) =>
196+ isScannable ( entry , config . optimizeDeps . extensions ) &&
197+ fs . existsSync ( entry ) ,
196198 )
197199
198200 return entries
@@ -520,7 +522,7 @@ function esbuildScanPlugin(
520522 depImports [ id ] = resolved
521523 }
522524 return externalUnlessEntry ( { path : id } )
523- } else if ( isScannable ( resolved ) ) {
525+ } else if ( isScannable ( resolved , config . optimizeDeps . extensions ) ) {
524526 const namespace = htmlTypesRE . test ( resolved ) ? 'html' : undefined
525527 // linked package, keep crawling
526528 return {
@@ -576,7 +578,10 @@ function esbuildScanPlugin(
576578 } ,
577579 } )
578580 if ( resolved ) {
579- if ( shouldExternalizeDep ( resolved , id ) || ! isScannable ( resolved ) ) {
581+ if (
582+ shouldExternalizeDep ( resolved , id ) ||
583+ ! isScannable ( resolved , config . optimizeDeps . extensions )
584+ ) {
580585 return externalUnlessEntry ( { path : id } )
581586 }
582587
@@ -659,8 +664,13 @@ function shouldExternalizeDep(resolvedId: string, rawId: string): boolean {
659664 return false
660665}
661666
662- function isScannable ( id : string ) : boolean {
663- return JS_TYPES_RE . test ( id ) || htmlTypesRE . test ( id )
667+ function isScannable ( id : string , extensions : string [ ] | undefined ) : boolean {
668+ return (
669+ JS_TYPES_RE . test ( id ) ||
670+ htmlTypesRE . test ( id ) ||
671+ extensions ?. includes ( path . extname ( id ) ) ||
672+ false
673+ )
664674}
665675
666676// esbuild v0.18 only transforms decorators when `experimentalDecorators` is set to `true`.
0 commit comments