diff --git a/packages/vite/src/node/__tests__/plugins/define.spec.ts b/packages/vite/src/node/__tests__/plugins/define.spec.ts index 2ac85712b2a072..8876a9d7ecc3e2 100644 --- a/packages/vite/src/node/__tests__/plugins/define.spec.ts +++ b/packages/vite/src/node/__tests__/plugins/define.spec.ts @@ -32,6 +32,16 @@ describe('definePlugin', () => { ) }) + test('should not replace if not defined', async () => { + const transform = await createDefinePluginTransform({ + __APP_VERSION__: JSON.stringify('1.0'), + }) + expect(await transform('const version = "1.0";')).toBe(undefined) + expect(await transform('const version = import.meta.SOMETHING')).toBe( + undefined, + ) + }) + test('replaces import.meta.env.SSR with false', async () => { const transform = await createDefinePluginTransform() expect(await transform('const isSSR = import.meta.env.SSR;')).toBe( diff --git a/packages/vite/src/node/plugins/define.ts b/packages/vite/src/node/plugins/define.ts index ccd6a5571a6e39..cce969843bfdde 100644 --- a/packages/vite/src/node/plugins/define.ts +++ b/packages/vite/src/node/plugins/define.ts @@ -83,18 +83,16 @@ export function definePlugin(config: ResolvedConfig): Plugin { }) } - const defineKeys = Object.keys(define) - const pattern = defineKeys.length - ? new RegExp( - // Mustn't be preceded by a char that can be part of an identifier - // or a '.' that isn't part of a spread operator - '(?