From 4c9b5a0e47e0e741c19497ba33e6dba5c6f8b98b Mon Sep 17 00:00:00 2001 From: contactjawad Date: Wed, 12 Aug 2026 20:37:37 +0500 Subject: [PATCH] fix(define): only match escaped dots in escapedDotRE so `$`-prefixed keys are replaced escapedDotRE was /(? { ).toBe(undefined) }) + test('replaces define keys containing `$`', async () => { + const transform = await createJsDefinePluginTransform({ + $FOO: JSON.stringify('bar'), + }) + expect(await transform('export const x = $FOO;')).toBe( + 'export const x = "bar";\n', + ) + }) + test('replace import.meta.env when it is a invalid json', async () => { const transform = await createJsDefinePluginTransform({ 'import.meta.env.LEGACY': '__VITE_IS_LEGACY__', diff --git a/packages/vite/src/node/plugins/define.ts b/packages/vite/src/node/plugins/define.ts index 3b653265de1da4..0651b79c414e82 100644 --- a/packages/vite/src/node/plugins/define.ts +++ b/packages/vite/src/node/plugins/define.ts @@ -7,7 +7,7 @@ import { isHTMLRequest } from './html' const nonJsRe = /\.json(?:$|\?)/ const isNonJsRequest = (request: string): boolean => nonJsRe.test(request) -const escapedDotRE = /(?