Skip to content

Commit 643e2c2

Browse files
authored
fix: preload stylesheets used on the page (#35)
1 parent 1f965da commit 643e2c2

File tree

4 files changed

+16
-10
lines changed

4 files changed

+16
-10
lines changed

src/runtime.ts

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -170,13 +170,6 @@ export function getAllDependencies (ids: Set<string>, rendererContext: RendererC
170170
}
171171
}
172172

173-
// Don't render preload links if we're adding them as stylesheets
174-
for (const id in allDeps.styles) {
175-
if (id in allDeps.preload) {
176-
delete allDeps.preload[id]
177-
}
178-
}
179-
180173
rendererContext._dependencySets[cacheKey] = allDeps
181174
return allDeps
182175
}

test/compat.test.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,9 @@ describe('renderer with vite manifest', () => {
4141
'<link rel="modulepreload" as="script" crossorigin href="/entry.mjs">',
4242
'<link rel="modulepreload" as="script" crossorigin href="/index.mjs">',
4343
'<link rel="modulepreload" as="script" crossorigin href="/vendor.mjs">',
44-
'<link rel="prefetch" as="image" type="image/png" href="/entry.png">'
44+
'<link rel="prefetch" as="image" type="image/png" href="/entry.png">',
45+
'<link rel="preload" as="style" href="/index.css">',
46+
'<link rel="preload" as="style" href="/test.css">'
4547
]
4648
)
4749
})
@@ -90,7 +92,8 @@ describe('renderer with webpack manifest', () => {
9092
'<link rel="preload" as="script" href="/_nuxt/app.js">',
9193
'<link rel="preload" as="script" href="/_nuxt/commons/app.js">',
9294
'<link rel="preload" as="script" href="/_nuxt/pages/index.js">', // dynamic entrypoint
93-
'<link rel="preload" as="script" href="/_nuxt/runtime.js">'
95+
'<link rel="preload" as="script" href="/_nuxt/runtime.js">',
96+
'<link rel="preload" as="style" href="/_nuxt/app.css">' // css used directly on the page
9497
]
9598
)
9699
})

test/dependencies.test.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ describe('dependencies', () => {
2626
expect(Object.values(preload).map(i => i.file)).toMatchInlineSnapshot(`
2727
[
2828
"entry.mjs",
29+
"test.css",
2930
"vendor.mjs",
3031
]
3132
`)
@@ -58,8 +59,10 @@ describe('dependencies', () => {
5859
expect(Object.values(preload).map(i => i.file)).toMatchInlineSnapshot(`
5960
[
6061
"entry.mjs",
62+
"test.css",
6163
"vendor.mjs",
6264
"about.mjs",
65+
"about.css",
6366
]
6467
`)
6568
expect(Object.values(scripts).map(i => i.file)).toMatchInlineSnapshot(`

test/renderer.test.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ describe('renderer', () => {
5454
"<link rel=\\"modulepreload\\" as=\\"script\\" crossorigin href=\\"/assets/index.mjs\\">",
5555
"<link rel=\\"modulepreload\\" as=\\"script\\" crossorigin href=\\"/assets/vendor.mjs\\">",
5656
"<link rel=\\"prefetch\\" as=\\"image\\" type=\\"image/png\\" href=\\"/assets/entry.png\\">",
57+
"<link rel=\\"preload\\" as=\\"style\\" href=\\"/assets/index.css\\">",
58+
"<link rel=\\"preload\\" as=\\"style\\" href=\\"/assets/test.css\\">",
5759
]
5860
`)
5961
})
@@ -63,7 +65,7 @@ describe('renderer', () => {
6365
const result = renderResourceHeaders()
6466
expect(result).toMatchInlineSnapshot(`
6567
{
66-
"link": "</assets/entry.mjs>; rel=\\"modulepreload\\"; as=\\"script\\"; crossorigin, </assets/vendor.mjs>; rel=\\"modulepreload\\"; as=\\"script\\"; crossorigin, </assets/index.mjs>; rel=\\"modulepreload\\"; as=\\"script\\"; crossorigin, </assets/entry.png>; rel=\\"prefetch\\"; as=\\"image\\"; type=\\"image/png\\"",
68+
"link": "</assets/entry.mjs>; rel=\\"modulepreload\\"; as=\\"script\\"; crossorigin, </assets/test.css>; rel=\\"preload\\"; as=\\"style\\", </assets/vendor.mjs>; rel=\\"modulepreload\\"; as=\\"script\\"; crossorigin, </assets/index.mjs>; rel=\\"modulepreload\\"; as=\\"script\\"; crossorigin, </assets/index.css>; rel=\\"preload\\"; as=\\"style\\", </assets/entry.png>; rel=\\"prefetch\\"; as=\\"image\\"; type=\\"image/png\\"",
6769
}
6870
`)
6971
})
@@ -83,6 +85,8 @@ describe('renderer', () => {
8385
"<link rel=\\"prefetch\\" as=\\"image\\" type=\\"image/png\\" href=\\"/assets/entry.png\\">",
8486
"<link rel=\\"prefetch\\" as=\\"script\\" crossorigin href=\\"/assets/index.mjs\\">",
8587
"<link rel=\\"prefetch\\" as=\\"script\\" crossorigin href=\\"/assets/lazy-component.mjs\\">",
88+
"<link rel=\\"preload\\" as=\\"style\\" href=\\"/assets/about.css\\">",
89+
"<link rel=\\"preload\\" as=\\"style\\" href=\\"/assets/test.css\\">",
8690
]
8791
`)
8892
})
@@ -110,6 +114,9 @@ describe('renderer', () => {
110114
"<link rel=\\"prefetch\\" as=\\"image\\" type=\\"image/x-icon\\" href=\\"/assets/lazy-component.ico\\">",
111115
"<link rel=\\"prefetch\\" as=\\"script\\" crossorigin href=\\"/assets/index.mjs\\">",
112116
"<link rel=\\"prefetch\\" as=\\"video\\" href=\\"/assets/lazy-component.mp4\\">",
117+
"<link rel=\\"preload\\" as=\\"style\\" href=\\"/assets/about.css\\">",
118+
"<link rel=\\"preload\\" as=\\"style\\" href=\\"/assets/lazy-component.css\\">",
119+
"<link rel=\\"preload\\" as=\\"style\\" href=\\"/assets/test.css\\">",
113120
]
114121
`)
115122
})

0 commit comments

Comments
 (0)