Javascript 如何在使用Nuxt.js的项目中使用stencil.js进行SSR(也使用SSR)
我想在我的Javascript 如何在使用Nuxt.js的项目中使用stencil.js进行SSR(也使用SSR),javascript,nuxt.js,server-side-rendering,stenciljs,Javascript,Nuxt.js,Server Side Rendering,Stenciljs,我想在我的numxt项目中使用stencil库 我能够让它工作,但是当vue组件在服务器端渲染时,我只能让模具的组件在客户端渲染 我认为最大的问题是definecustomement需要窗口作为参数 我知道stencil.js有一个“prerender”,在我的理解中基本上是SSR,我想使用它以及Nuxt.jsSSR 所以我的问题是:如何配置nuxt项目以支持stencil.js的服务器端渲染?哦,是的,正如Aldarund所说,你不能,我更仔细地看了一下,据说预渲染是在构建时进行的,所以这是不
numxt
项目中使用stencil
库
我能够让它工作,但是当vue
组件在服务器端渲染时,我只能让模具的组件在客户端渲染
我认为最大的问题是definecustomement
需要窗口作为参数
我知道stencil.js
有一个“prerender”,在我的理解中基本上是SSR,我想使用它以及Nuxt.js
SSR
所以我的问题是:如何配置nuxt
项目以支持stencil.js
的服务器端渲染?哦,是的,正如Aldarund所说,你不能,我更仔细地看了一下,据说预渲染是在构建时进行的,所以这是不可能的:/太糟糕了,确实,你有一个解决方法
您必须在unpkg或任何其他公共(或私人)CDN中发布您的webcomponent
在nuxt.config.js文件中,在脚本部分添加脚本。此脚本必须引用公共库()
有关如何向nuxt项目添加外部资源的更多信息,请阅读:->如何使用外部资源
干杯更新:我目前正在开发一个Nuxt模块,以与基于stencil.js的库集成
它的作用是:
- 它使用
render:route
和generate:page
为基于SSR的应用程序(通用或构建时)创建两个挂钩,它将在将请求发送回浏览器之前呈现模具组件
- 它为CSR注入了一个插件,用于定义模具库中的自定义元素,如前所述
⚠️ 注意:Vue在CSR上水合时抛出的错误很少,这可能是由于渲染器在渲染模具组件时注入的注释
过时的注释,在模具V1之前:
看起来Stencil v1可能会解决SSR,根据以下内容:
Stencil One将使用dist水合物脚本输出目标生成
一个节点脚本,可用于添加脚本。然后
生成的dist/hydrate/index.js脚本可以在中重用
多个位置(Angular Universal、Express中间件、自定义
预渲染等)
如果要预渲染,只需添加--prerender即可
标记到您的模具构建,它将为您处理所有这些。
我们仍在积极地进行这方面的工作,并希望很快发货。谢谢
Github相关问题:
你不能。支持SSR是应该在库级别完成的事情。因此,stencil.js要么支持ssr,要么不支持ssr。如果它依赖于窗口-它不支持ssr。请参见抱歉,但是,此方法是否适用于服务器端渲染?是否以预先渲染的方式交付给客户?