Skip to content

Commit 2f2d1c3

Browse files
authored
perf: render non-blocking style prefetches (#39)
1 parent a882627 commit 2f2d1c3

File tree

3 files changed

+6
-6
lines changed

3 files changed

+6
-6
lines changed

src/runtime.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -223,8 +223,8 @@ export function getPreloadLinks (ssrContext: SSRContext, rendererContext: Render
223223
export function getPrefetchLinks (ssrContext: SSRContext, rendererContext: RendererContext): LinkAttributes[] {
224224
const { prefetch } = getRequestDependencies(ssrContext, rendererContext)
225225
return Object.values(prefetch).map(resource => ({
226-
rel: 'prefetch' + (resource.resourceType === 'style' ? ' stylesheet' : ''),
227-
as: resource.resourceType !== 'style' ? resource.resourceType : null,
226+
rel: 'prefetch',
227+
as: resource.resourceType,
228228
type: resource.mimeType ?? null,
229229
crossorigin: resource.resourceType === 'font' || resource.module ? '' : null,
230230
href: rendererContext.buildAssetsURL(resource.file)

test/compat.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,9 @@ describe('renderer with webpack manifest', () => {
8787
const result = renderResourceHints().split('>').slice(0, -1).map(s => `${s}>`).sort()
8888
expect(result).to.deep.equal(
8989
[
90-
'<link rel="prefetch stylesheet" href="/_nuxt/pages/another.css">', // dynamic import CSS
9190
'<link rel="prefetch" as="image" type="image/svg+xml" href="/_nuxt/img/logo.41f2f89.svg">',
9291
'<link rel="prefetch" as="script" href="/_nuxt/pages/another.js">', // dynamic import
92+
'<link rel="prefetch" as="style" href="/_nuxt/pages/another.css">', // dynamic import CSS
9393
'<link rel="preload" as="script" href="/_nuxt/app.js">',
9494
'<link rel="preload" as="script" href="/_nuxt/commons/app.js">',
9595
'<link rel="preload" as="script" href="/_nuxt/pages/index.js">', // dynamic entrypoint

test/renderer.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,11 +80,11 @@ describe('renderer', () => {
8080
"<link rel=\\"modulepreload\\" as=\\"script\\" crossorigin href=\\"/assets/about.mjs\\">",
8181
"<link rel=\\"modulepreload\\" as=\\"script\\" crossorigin href=\\"/assets/entry.mjs\\">",
8282
"<link rel=\\"modulepreload\\" as=\\"script\\" crossorigin href=\\"/assets/vendor.mjs\\">",
83-
"<link rel=\\"prefetch stylesheet\\" href=\\"/assets/index.css\\">",
84-
"<link rel=\\"prefetch stylesheet\\" href=\\"/assets/lazy-component.css\\">",
8583
"<link rel=\\"prefetch\\" as=\\"image\\" type=\\"image/png\\" href=\\"/assets/entry.png\\">",
8684
"<link rel=\\"prefetch\\" as=\\"script\\" crossorigin href=\\"/assets/index.mjs\\">",
8785
"<link rel=\\"prefetch\\" as=\\"script\\" crossorigin href=\\"/assets/lazy-component.mjs\\">",
86+
"<link rel=\\"prefetch\\" as=\\"style\\" href=\\"/assets/index.css\\">",
87+
"<link rel=\\"prefetch\\" as=\\"style\\" href=\\"/assets/lazy-component.css\\">",
8888
"<link rel=\\"preload\\" as=\\"style\\" href=\\"/assets/about.css\\">",
8989
"<link rel=\\"preload\\" as=\\"style\\" href=\\"/assets/test.css\\">",
9090
]
@@ -103,7 +103,6 @@ describe('renderer', () => {
103103
"<link rel=\\"modulepreload\\" as=\\"script\\" crossorigin href=\\"/assets/entry.mjs\\">",
104104
"<link rel=\\"modulepreload\\" as=\\"script\\" crossorigin href=\\"/assets/lazy-component.mjs\\">",
105105
"<link rel=\\"modulepreload\\" as=\\"script\\" crossorigin href=\\"/assets/vendor.mjs\\">",
106-
"<link rel=\\"prefetch stylesheet\\" href=\\"/assets/index.css\\">",
107106
"<link rel=\\"prefetch\\" as=\\"audio\\" href=\\"/assets/lazy-component.mp3\\">",
108107
"<link rel=\\"prefetch\\" as=\\"font\\" type=\\"font/woff\\" crossorigin href=\\"/assets/lazy-component.woff\\">",
109108
"<link rel=\\"prefetch\\" as=\\"font\\" type=\\"font/woff2\\" crossorigin href=\\"/assets/lazy-component.woff2\\">",
@@ -113,6 +112,7 @@ describe('renderer', () => {
113112
"<link rel=\\"prefetch\\" as=\\"image\\" type=\\"image/svg+xml\\" href=\\"/assets/lazy-component.svg\\">",
114113
"<link rel=\\"prefetch\\" as=\\"image\\" type=\\"image/x-icon\\" href=\\"/assets/lazy-component.ico\\">",
115114
"<link rel=\\"prefetch\\" as=\\"script\\" crossorigin href=\\"/assets/index.mjs\\">",
115+
"<link rel=\\"prefetch\\" as=\\"style\\" href=\\"/assets/index.css\\">",
116116
"<link rel=\\"prefetch\\" as=\\"video\\" href=\\"/assets/lazy-component.mp4\\">",
117117
"<link rel=\\"preload\\" as=\\"style\\" href=\\"/assets/about.css\\">",
118118
"<link rel=\\"preload\\" as=\\"style\\" href=\\"/assets/lazy-component.css\\">",

0 commit comments

Comments
 (0)