如何使Stencil和Angular Universal工作

时间:2019-09-05 07:57:40

标签: angular angular-universal stenciljs

我想使用Angular Universal在Angular应用中制作SSR。

SSR有效,但是用Stencil制作的Web组件未呈现(禁用JS时不起作用)。

LitElement和Vanilla JS Web组件也不起作用。

我发现Stencil具有dist-hydrate-script输出,可以使其正常工作。

但是我还没有找到有关它的任何文档,因此查看源代码也无济于事。 (我不知道如何使用hydrateDocument()renderToString()方法。)

谢谢=)

1 个答案:

答案 0 :(得分:1)

https://github.com/sajTempler/stencil-ssr/blob/master/example_endpoint/server/index.js#L4

在模板配置中添加到您的输出目标

{ type: 'dist-hydrate-script' },

这将创建您可以在您的服务器上使用的 Hydrate 应用程序

const { renderToString  } = require('../client/hydrate');

并使用快递:

app.get('/', async (_req, res) => {

    const { html } = await renderToString("<my-component></my-component>", {
        prettyHtml: true
    })

    res.send(html);
})