mirror of
https://github.com/nuxt/nuxt.git
synced 2024-11-29 09:02:03 +00:00
fix(vite-node): on-demand manifest (#5017)
This commit is contained in:
parent
026903c5e7
commit
7efdb486db
@ -30,7 +30,9 @@ interface RenderResult {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
const getClientManifest = () => import('#build/dist/server/client.manifest.mjs').then(r => r.default || r)
|
const getClientManifest = () => import('#build/dist/server/client.manifest.mjs')
|
||||||
|
.then(r => r.default || r)
|
||||||
|
.then(r => typeof r === 'function' ? r() : r)
|
||||||
|
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
const getServerEntry = () => process.env.NUXT_NO_SSR ? Promise.resolve(null) : import('#build/dist/server/server.mjs').then(r => r.default || r)
|
const getServerEntry = () => process.env.NUXT_NO_SSR ? Promise.resolve(null) : import('#build/dist/server/server.mjs').then(r => r.default || r)
|
||||||
@ -46,15 +48,22 @@ const getSSRRenderer = lazyCachedFunction(async () => {
|
|||||||
if (!createSSRApp) { throw new Error('Server bundle is not available') }
|
if (!createSSRApp) { throw new Error('Server bundle is not available') }
|
||||||
|
|
||||||
// Create renderer
|
// Create renderer
|
||||||
const renderToString = async (input, context) => {
|
const renderer = createRenderer(createSSRApp, {
|
||||||
const html = await _renderToString(input, context)
|
|
||||||
return `<div id="__nuxt">${html}</div>`
|
|
||||||
}
|
|
||||||
return createRenderer(createSSRApp, {
|
|
||||||
clientManifest,
|
clientManifest,
|
||||||
renderToString,
|
renderToString,
|
||||||
publicPath: buildAssetsURL()
|
publicPath: buildAssetsURL()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
async function renderToString (input, context) {
|
||||||
|
const html = await _renderToString(input, context)
|
||||||
|
// In development with vite-node, the manifest is on-demand and will be available after rendering
|
||||||
|
if (process.dev && process.env.NUXT_VITE_NODE_OPTIONS) {
|
||||||
|
renderer.rendererContext.updateManifest(await getClientManifest())
|
||||||
|
}
|
||||||
|
return `<div id="__nuxt">${html}</div>`
|
||||||
|
}
|
||||||
|
|
||||||
|
return renderer
|
||||||
})
|
})
|
||||||
|
|
||||||
// -- SPA Renderer --
|
// -- SPA Renderer --
|
||||||
|
@ -3,6 +3,4 @@ import { getViteNodeOptions } from './vite-node-shared.mjs'
|
|||||||
|
|
||||||
const viteNodeOptions = getViteNodeOptions()
|
const viteNodeOptions = getViteNodeOptions()
|
||||||
|
|
||||||
const manifest = await $fetch('/manifest', { baseURL: viteNodeOptions.baseURL })
|
export default () => $fetch('/manifest', { baseURL: viteNodeOptions.baseURL })
|
||||||
|
|
||||||
export default manifest
|
|
||||||
|
Loading…
Reference in New Issue
Block a user