mirror of
https://github.com/nuxt/nuxt.git
synced 2025-01-19 01:45:53 +00:00
fix(nitro): workaround for vue2 global style injection
This commit is contained in:
parent
64fe3f735c
commit
e5df083f60
@ -1,11 +1,20 @@
|
|||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
import { createRenderer } from '~vueServerRenderer'
|
import { createRenderer } from '~vueServerRenderer'
|
||||||
|
|
||||||
const _renderer = createRenderer({})
|
const _renderer = createRenderer({})
|
||||||
|
|
||||||
|
// @ts-ignore
|
||||||
|
const __VUE_SSR_CONTEXT__ = global.__VUE_SSR_CONTEXT__ = {}
|
||||||
|
|
||||||
export function renderToString (component, context) {
|
export function renderToString (component, context) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
_renderer.renderToString(component, context, (err, result) => {
|
_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) {
|
if (err) {
|
||||||
return reject(err)
|
return reject(err)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user