diff --git a/packages/nitro/src/runtime/app/vue2.ts b/packages/nitro/src/runtime/app/vue2.ts index 0de42f4c57..fb03e863c9 100644 --- a/packages/nitro/src/runtime/app/vue2.ts +++ b/packages/nitro/src/runtime/app/vue2.ts @@ -1,11 +1,20 @@ // @ts-ignore import { createRenderer } from '~vueServerRenderer' - const _renderer = createRenderer({}) +// @ts-ignore +const __VUE_SSR_CONTEXT__ = global.__VUE_SSR_CONTEXT__ = {} + export function renderToString (component, context) { return new Promise((resolve, reject) => { _renderer.renderToString(component, context, (err, result) => { + const styles = [__VUE_SSR_CONTEXT__, context].map(c => c?._styles?.default).filter(Boolean) + if (!context._styles) { context._styles = {} } + context._styles.default = { + ids: [...styles.map(s => s.ids)], + css: styles.map(s => s.css).join(''), + media: styles.map(s => s.media).join('') + } if (err) { return reject(err) }