From 0a98961283aad96ce2c464c9a6555ed6a45283c0 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Thu, 28 Nov 2024 16:49:14 +0900 Subject: [PATCH] fix(css): referencing aliased svg asset with lightningcss enabled errored --- packages/vite/src/node/plugins/css.ts | 1 - .../__tests__/css-lightningcss.spec.ts | 5 +++++ playground/css-lightningcss/css-url.css | 4 ++++ playground/css-lightningcss/index.html | 4 ++++ playground/css-lightningcss/main.js | 1 + .../css-lightningcss/nested/fragment.svg | 22 +++++++++++++++++++ playground/css-lightningcss/vite.config.js | 6 +++++ 7 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 playground/css-lightningcss/css-url.css create mode 100644 playground/css-lightningcss/nested/fragment.svg diff --git a/packages/vite/src/node/plugins/css.ts b/packages/vite/src/node/plugins/css.ts index 3f3e35fb962f49..0a11d9f61abfc3 100644 --- a/packages/vite/src/node/plugins/css.ts +++ b/packages/vite/src/node/plugins/css.ts @@ -3177,7 +3177,6 @@ async function compileLightningCSS( css = css.replace(dep.placeholder, () => dep.url) break } - deps.add(dep.url) if (urlReplacer) { const replaceUrl = await urlReplacer( dep.url, diff --git a/playground/css-lightningcss/__tests__/css-lightningcss.spec.ts b/playground/css-lightningcss/__tests__/css-lightningcss.spec.ts index 6c995866a4bf00..0cfa1c7f9c05a9 100644 --- a/playground/css-lightningcss/__tests__/css-lightningcss.spec.ts +++ b/playground/css-lightningcss/__tests__/css-lightningcss.spec.ts @@ -82,3 +82,8 @@ test('nested css with relative asset', async () => { isBuild ? /ok-[-\w]+\.png/ : `${viteTestUrl}/ok.png`, ) }) + +test('aliased asset', async () => { + const bg = await getBg('.css-url-aliased') + expect(bg).toMatch('data:image/svg+xml,') +}) diff --git a/playground/css-lightningcss/css-url.css b/playground/css-lightningcss/css-url.css new file mode 100644 index 00000000000000..2694e5f5136fec --- /dev/null +++ b/playground/css-lightningcss/css-url.css @@ -0,0 +1,4 @@ +.css-url-aliased { + background: url('@/fragment.svg'); + background-size: 10px; +} diff --git a/playground/css-lightningcss/index.html b/playground/css-lightningcss/index.html index 1dacab8f5133de..e2ee95e640e2bd 100644 --- a/playground/css-lightningcss/index.html +++ b/playground/css-lightningcss/index.html @@ -29,6 +29,10 @@
Assets relative to nested CSS
+ +