diff --git a/packages/vite/src/node/optimizer/scan.ts b/packages/vite/src/node/optimizer/scan.ts index 7929b337b8a6e4..69b245dd4253b9 100644 --- a/packages/vite/src/node/optimizer/scan.ts +++ b/packages/vite/src/node/optimizer/scan.ts @@ -17,8 +17,12 @@ import { createDebugger, dataUrlRE, externalRE, + isAstroExt, + isHtmlExt, isObject, isOptimizable, + isSvelteExt, + isVueExt, moduleListContains, multilineCommentsRE, normalizePath, @@ -366,7 +370,7 @@ function esbuildScanPlugin( let raw = fs.readFileSync(path, 'utf-8') // Avoid matching the content of the comment raw = raw.replace(commentRE, '') - const isHtml = path.endsWith('.html') + const isHtml = isHtmlExt(path) const regex = isHtml ? scriptModuleRE : scriptRE regex.lastIndex = 0 let js = '' @@ -394,7 +398,7 @@ function esbuildScanPlugin( let loader: Loader = 'js' if (lang === 'ts' || lang === 'tsx' || lang === 'jsx') { loader = lang - } else if (path.endsWith('.astro')) { + } else if (isAstroExt(path)) { loader = 'ts' } const srcMatch = openTag.match(srcRE) @@ -445,7 +449,7 @@ function esbuildScanPlugin( // Especially for Svelte files, exports in