Skip to content

Commit 23ef8a1

Browse files
authored
feat(optimizer): check optimizeDeps.extensions for scannable files (#14543)
1 parent e7d7a6f commit 23ef8a1

File tree

1 file changed

+15
-5
lines changed
  • packages/vite/src/node/optimizer

1 file changed

+15
-5
lines changed

packages/vite/src/node/optimizer/scan.ts

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)