1 Star 0 Fork 0

Vue.js/vue-ssr-html-stream

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

DEPRECATED: This package has been pulled into vue-server-renderer.

vue-ssr-html-stream Build Status

Usage

const HTMLStream = require('vue-ssr-html-stream')

const htmlStream = new HTMLStream({
  template, // string
  context, // ?Object
  outletPlaceholder // ?string, defaults to <!--vue-ssr-outlet-->
})

// pipe it
renderStream
  .pipe(htmlStream)
  .pipe(responseStream)
  • The template option is a string of the HTML page template. It must contain a special string which serves as the placeholder for your app's server-rendered content. The default placeholder string is <!--vue-ssr-outlet--> - you can configure it with the outletPlaceholder option.

  • The context option should be the same context object passed to bundleRenderer.renderToStream(). The transform will check for a few special properties on the context when the source render stream starts emitting data:

    • context.head: any head markup that should be injected into the head of the page.

    • context.styles: any inline CSS that should be injected into the head of the page. Note that vue-loader 10.2.0+ (which uses vue-style-loader 2.0) will automatically populate this property with styles used in rendered components.

    • context.state: initial Vuex store state that should be inlined in the page as window.__INITIAL_STATE__. The inlined JSON is automatically sanitized with serialize-javascript.

    • context.asyncChunks: <script> tags for async chunks (from webpack's code split) that need to be embedded after webpack bootstrap and before app entry. This requires using CommonsChunkPlugin to split out webpack runtime and manifest into a separate file.

beforeStart event

The stream emits a special event: beforeStart. An example use case would be generating context.head using info injected by vue-meta:

htmlStream.on('beforeStart', () => {
  const meta = context.meta.inject()
  context.head = (context.head || '') + meta.title.text()
})

Example usage with Express

const HTMLStream = require('vue-ssr-html-stream')
const template = require('fs').readFileSync('./index.html', 'utf-8')
const renderer = require('vue-server-renderer').createBundleRenderer(bundleCode)

app.get('*', (req, res) => {
  const context = { url: req.url }

  renderer.renderToStream(context)
    .on('error', err => {
      // handle render stream error before piping to the transform
    })
    .pipe(new HTMLStream({ context, template }))
    .pipe(res)
})

空文件

简介

Transform stream to simplify Vue SSR streaming 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

接近3年前创建了仓库
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/vuejs/vue-ssr-html-stream.git
git@gitee.com:vuejs/vue-ssr-html-stream.git
vuejs
vue-ssr-html-stream
vue-ssr-html-stream
master

搜索帮助