Skip to content

Commit bfebcbb

Browse files
authored
fix: only prefetch dynamic entries (#19)
1 parent 791243b commit bfebcbb

File tree

3 files changed

+14
-5
lines changed

3 files changed

+14
-5
lines changed

src/renderer.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -272,8 +272,14 @@ export function getAllDependencies (ids: Set<Identifier>, rendererContext: Rende
272272

273273
for (const id of ids) {
274274
const deps = getModuleDependencies(id, rendererContext)
275-
Object.assign(allDeps.scripts, deps.scripts)
276-
Object.assign(allDeps.styles, deps.styles)
275+
const isDynamic = rendererContext.clientManifest[id]?.isDynamicEntry
276+
if (isDynamic) {
277+
Object.assign(allDeps.prefetch, deps.styles)
278+
Object.assign(allDeps.prefetch, deps.scripts)
279+
} else {
280+
Object.assign(allDeps.styles, deps.styles)
281+
Object.assign(allDeps.scripts, deps.scripts)
282+
}
277283
Object.assign(allDeps.preload, deps.preload)
278284
Object.assign(allDeps.prefetch, deps.prefetch)
279285

test/fixtures/manifest.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88
],
99
"dynamicImports": [
1010
"pages/index.vue"
11+
],
12+
"css": [
13+
"app.css"
1114
]
1215
},
1316
"_vendor.mjs": {

test/renderer.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,13 @@ describe('renderer', () => {
2121
const { renderScripts } = await getRenderer()
2222
const result = renderScripts().split('</script>').slice(0, -1).map(s => `${s}</script>`).sort()
2323
expect(result).to.deep.equal([
24-
'<script type="module" src="/entry.mjs" defer></script>',
25-
'<script type="module" src="/index.mjs" defer></script>'
24+
'<script type="module" src="/entry.mjs" defer></script>'
2625
])
2726
})
2827
it('renders styles correctly', async () => {
2928
const { renderStyles } = await getRenderer()
3029
expect(renderStyles()).to.equal(
31-
'<link rel="stylesheet" href="/index.css">'
30+
'<link rel="stylesheet" href="/app.css">'
3231
)
3332
})
3433
it('renders resource hints correctly', async () => {
@@ -39,6 +38,7 @@ describe('renderer', () => {
3938
'<link rel="modulepreload" href="/entry.mjs" as="script">',
4039
'<link rel="modulepreload" href="/index.mjs" as="script">',
4140
'<link rel="modulepreload" href="/vendor.mjs" as="script">',
41+
'<link rel="preload" href="/app.css" as="style">',
4242
'<link rel="preload" href="/index.css" as="style">'
4343
]
4444
)

0 commit comments

Comments
 (0)