diff --git a/packages/vite/src/node/__tests__/plugins/css.spec.ts b/packages/vite/src/node/__tests__/plugins/css.spec.ts index 380358d875d090..02e1833b4fc3b8 100644 --- a/packages/vite/src/node/__tests__/plugins/css.spec.ts +++ b/packages/vite/src/node/__tests__/plugins/css.spec.ts @@ -56,6 +56,12 @@ describe('search css url function', () => { ), ).toBe(true) }) + + test('should capture the full url with escaped parentheses', () => { + const css = 'background-image: url(public/awkward-name\\)2.png);' + const match = cssUrlRE.exec(css) + expect(match?.[1].trim()).toBe('public/awkward-name\\)2.png') + }) }) describe('css modules', () => { diff --git a/packages/vite/src/node/plugins/css.ts b/packages/vite/src/node/plugins/css.ts index ed5530f9a22337..4c3ad50e83d77f 100644 --- a/packages/vite/src/node/plugins/css.ts +++ b/packages/vite/src/node/plugins/css.ts @@ -1896,7 +1896,7 @@ type CssUrlReplacer = ( ) => string | false | Promise // https://drafts.csswg.org/css-syntax-3/#identifier-code-point export const cssUrlRE = - /(?