Skip to content

Commit dcf88bd

Browse files
authored
fix(define): fix match escaped dots to support $-prefixed define keys (#23249)
1 parent a20a35e commit dcf88bd

2 files changed

Lines changed: 10 additions & 1 deletion

File tree

packages/vite/src/node/__tests__/plugins/define.spec.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,15 @@ describe('definePlugin (SSR dev)', () => {
9090
).toBe(undefined)
9191
})
9292

93+
test('replaces define keys containing `$`', async () => {
94+
const transform = await createJsDefinePluginTransform({
95+
$FOO: JSON.stringify('bar'),
96+
})
97+
expect(await transform('export const x = $FOO;')).toBe(
98+
'export const x = "bar";\n',
99+
)
100+
})
101+
93102
test('replace import.meta.env when it is a invalid json', async () => {
94103
const transform = await createJsDefinePluginTransform({
95104
'import.meta.env.LEGACY': '__VITE_IS_LEGACY__',

packages/vite/src/node/plugins/define.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { isHTMLRequest } from './html'
77

88
const nonJsRe = /\.json(?:$|\?)/
99
const isNonJsRequest = (request: string): boolean => nonJsRe.test(request)
10-
const escapedDotRE = /(?<!\\)\\./g
10+
const escapedDotRE = /(?<!\\)\\\./g
1111

1212
export function definePlugin(config: ResolvedConfig): Plugin {
1313
const isBuild = config.command === 'build'

0 commit comments

Comments
 (0)