diff --git a/packages/vite/src/node/ssr/__tests__/ssrTransform.spec.ts b/packages/vite/src/node/ssr/__tests__/ssrTransform.spec.ts index ba425d419de9b2..bd3f640e1b149e 100644 --- a/packages/vite/src/node/ssr/__tests__/ssrTransform.spec.ts +++ b/packages/vite/src/node/ssr/__tests__/ssrTransform.spec.ts @@ -300,6 +300,18 @@ test('import.meta', async () => { ).toMatchInlineSnapshot(`"console.log(__vite_ssr_import_meta__.url)"`) }) +test('import.meta with imported variable named meta', async () => { + expect( + await ssrTransformSimpleCode( + `import { meta } from './meta';\nconsole.log(import.meta.url, \`Hello, \${meta}!\`)`, + ), + ).toMatchInlineSnapshot(` + "const __vite_ssr_import_0__ = await __vite_ssr_import__("./meta", {"importedNames":["meta"]}); + + console.log(__vite_ssr_import_meta__.url, \`Hello, \${__vite_ssr_import_0__.meta}!\`)" + `) +}) + test('dynamic import', async () => { const result = await ssrTransformSimple( `export const i = () => import('./foo')`, diff --git a/packages/vite/src/node/ssr/ssrTransform.ts b/packages/vite/src/node/ssr/ssrTransform.ts index 6a4e615884c0bf..0b889de0d43af9 100644 --- a/packages/vite/src/node/ssr/ssrTransform.ts +++ b/packages/vite/src/node/ssr/ssrTransform.ts @@ -709,6 +709,11 @@ function isRefIdentifier( return false } + // meta property (e.g. import.meta) + if (parent.type === 'MetaProperty') { + return false + } + // export { id } from "lib" // export * as id from "lib" if (