From 1dbc7ccac5191212548a59c02385595517b3e620 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Fri, 27 May 2022 12:40:18 +0900 Subject: [PATCH] fix(optimizer): transpile before calling `transformGlobImport` (#8343) --- packages/vite/src/node/optimizer/scan.ts | 17 +++++++++++++---- playground/optimize-deps/index.astro | 2 ++ 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/packages/vite/src/node/optimizer/scan.ts b/packages/vite/src/node/optimizer/scan.ts index 6f609991ecc7fb..63d2d265e10e27 100644 --- a/packages/vite/src/node/optimizer/scan.ts +++ b/packages/vite/src/node/optimizer/scan.ts @@ -3,7 +3,7 @@ import path from 'path' import { performance } from 'perf_hooks' import glob from 'fast-glob' import type { Loader, OnLoadResult, Plugin } from 'esbuild' -import { build } from 'esbuild' +import { build, transform } from 'esbuild' import colors from 'picocolors' import type { ResolvedConfig } from '..' import { @@ -299,17 +299,26 @@ function esbuildScanPlugin( const key = `${path}?id=${scriptId++}` if (contents.includes('import.meta.glob')) { + let transpiledContents + // transpile because `transformGlobImport` only expects js + if (loader !== 'js') { + transpiledContents = (await transform(contents, { loader })) + .code + } else { + transpiledContents = contents + } + scripts[key] = { - loader: 'js', + loader: 'js', // since it is transpiled contents: ( await transformGlobImport( - contents, + transpiledContents, path, config.root, resolve ) - )?.s.toString() || contents + )?.s.toString() || transpiledContents } } else { scripts[key] = { diff --git a/playground/optimize-deps/index.astro b/playground/optimize-deps/index.astro index 95790f5bf3a0d5..4425a8b0f6b1ee 100644 --- a/playground/optimize-deps/index.astro +++ b/playground/optimize-deps/index.astro @@ -1,4 +1,6 @@