Skip to content

Commit ae68958

Browse files
authored
fix(css): referencing aliased svg asset with lightningcss enabled errored (#18819)
1 parent dac7992 commit ae68958

File tree

7 files changed

+42
-1
lines changed

7 files changed

+42
-1
lines changed

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

-1
Original file line numberDiff line numberDiff line change
@@ -3195,7 +3195,6 @@ async function compileLightningCSS(
31953195
css = css.replace(dep.placeholder, () => dep.url)
31963196
break
31973197
}
3198-
deps.add(dep.url)
31993198
if (urlReplacer) {
32003199
const replaceUrl = await urlReplacer(
32013200
dep.url,

playground/css-lightningcss/__tests__/css-lightningcss.spec.ts

+5
Original file line numberDiff line numberDiff line change
@@ -82,3 +82,8 @@ test('nested css with relative asset', async () => {
8282
isBuild ? /ok-[-\w]+\.png/ : `${viteTestUrl}/ok.png`,
8383
)
8484
})
85+
86+
test('aliased asset', async () => {
87+
const bg = await getBg('.css-url-aliased')
88+
expect(bg).toMatch('data:image/svg+xml,')
89+
})
+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
.css-url-aliased {
2+
background: url('@/fragment.svg');
3+
background-size: 10px;
4+
}

playground/css-lightningcss/index.html

+4
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ <h1>Lightning CSS</h1>
2929

3030
<p>Assets relative to nested CSS</p>
3131
<div class="nested-css-relative-asset"></div>
32+
33+
<div class="css-url-aliased">
34+
<span style="background: #fff">CSS background (aliased)</span>
35+
</div>
3236
</div>
3337

3438
<script type="module" src="./main.js"></script>

playground/css-lightningcss/main.js

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import './minify.css'
22
import './imported.css'
33
import mod from './mod.module.css'
44
import './external-url.css'
5+
import './css-url.css'
56

67
document.querySelector('.modules').classList.add(mod['apply-color'])
78
text('.modules-code', JSON.stringify(mod, null, 2))
Loading

playground/css-lightningcss/vite.config.js

+6
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,15 @@
1+
import path from 'node:path'
12
import { defineConfig } from 'vite'
23

34
export default defineConfig({
45
css: {
56
transformer: 'lightningcss',
67
},
8+
resolve: {
9+
alias: {
10+
'@': path.resolve(__dirname, 'nested'),
11+
},
12+
},
713
build: {
814
cssTarget: ['chrome61'],
915
cssMinify: 'lightningcss',

0 commit comments

Comments
 (0)