Comparing version 0.5.0 to 0.5.1
@@ -49,2 +49,7 @@ import type { ConfigEffect, PageContext } from 'vike/types'; | ||
}; | ||
stream: { | ||
env: { | ||
server: true; | ||
}; | ||
}; | ||
vuePlugins: { | ||
@@ -94,2 +99,9 @@ env: { | ||
/** | ||
* Whether to stream the page's HTML. Requires Server-Side Rendering (`ssr: true`). | ||
* | ||
* @default false | ||
* | ||
*/ | ||
stream?: boolean; | ||
/** | ||
* List of Vue plugins (and their respective options) to be installed with | ||
@@ -96,0 +108,0 @@ * `app.vue(plugin, options)`. |
@@ -56,2 +56,5 @@ // Depending on the value of `config.meta.ssr`, set other config options' `env` | ||
}, | ||
stream: { | ||
env: { server: true } | ||
}, | ||
vuePlugins: { | ||
@@ -58,0 +61,0 @@ // List of vue plugins to be installed with app.vue() in onRenderHtml and |
@@ -9,4 +9,5 @@ // https://vike.dev/onRenderHtml | ||
const onRenderHtml = async (pageContext) => { | ||
let pageStream = ''; | ||
if (pageContext.Page !== undefined) { | ||
const { stream } = pageContext.config; | ||
let pageView = ''; | ||
if (!!pageContext.Page) { | ||
// SSR is enabled | ||
@@ -19,3 +20,3 @@ const app = createVueApp(pageContext); | ||
} | ||
pageStream = renderToNodeStream(app); | ||
pageView = !stream ? dangerouslySkipEscape(await renderToString(app)) : renderToNodeStream(app); | ||
} | ||
@@ -29,5 +30,5 @@ const title = getTitle(pageContext); | ||
let headHtml = ''; | ||
if (pageContext.config.Head !== undefined) { | ||
if (!!pageContext.config.Head) { | ||
const app = createVueApp(pageContext, /*ssrApp*/ true, /*renderHead*/ true); | ||
headHtml = await renderToString(app); | ||
headHtml = dangerouslySkipEscape(await renderToString(app)); | ||
} | ||
@@ -42,6 +43,6 @@ const lang = pageContext.config.lang || 'en'; | ||
${descriptionTag} | ||
${dangerouslySkipEscape(headHtml)} | ||
${headHtml} | ||
</head> | ||
<body> | ||
<div id="page-view">${pageStream}</div> | ||
<div id="page-view">${pageView}</div> | ||
</body> | ||
@@ -48,0 +49,0 @@ <!-- built with https://github.com/vikejs/vike-vue --> |
{ | ||
"name": "vike-vue", | ||
"version": "0.5.0", | ||
"version": "0.5.1", | ||
"type": "module", | ||
@@ -28,6 +28,6 @@ "main": "./dist/renderer/+config.js", | ||
"devDependencies": { | ||
"@brillout/release-me": "^0.1.8", | ||
"@types/node": "^20.9.0", | ||
"typescript": "^5.2.2", | ||
"vue": "^3.3.8" | ||
"@brillout/release-me": "^0.1.9", | ||
"@types/node": "^20.10.3", | ||
"typescript": "^5.3.2", | ||
"vue": "^3.3.9" | ||
}, | ||
@@ -34,0 +34,0 @@ "typesVersions": { |
@@ -8,3 +8,3 @@ <!-- WARNING: keep links absolute in this file so they work on NPM too --> | ||
Vue integration for [Vike](https://vike.dev/) (using the [V1 design](https://vike.dev/migration/v1-design)). | ||
Vue integration for [Vike](https://vike.dev/). | ||
@@ -11,0 +11,0 @@ > For integrations with React and Solid, see |
18808
473