Svelte 构建初始渲染到 index.html 文件

Dav*_*nan 5 html javascript svelte sapper

我决定在我的下一个网站上试用 Svelte,这将是一个使用 GitLab 页面托管的静态网站。

我得到了生成dist/bundle.jsdist/bundle.css.

问题是我无法上传此dist文件夹,因为没有index.html文件。

如何让 Svelte/rollup 生成index.html包含初始渲染的文件?


另一种选择是创建我自己的index.html文件并导入bundle.js. 这对我来说不是一个选择,因为初始渲染现在是通过 javascript 而不是在编译时在运行时生成的,这可能会对 SEO 产生负面影响并阻止没有 javascript 的用户至少看到一些东西。


我也在看 Sapper,它进行服务器端渲染,据我所知,它在服务器端进行初始渲染。但是,这似乎需要您拥有服务器而不是渲染到文件,并且对于静态单页网站来说似乎过于复杂。

Dav*_*nan 10

在挖掘了一段时间后,我发现Sapper允许您导出(呈现为 html 文件而不是需要服务器)。

您可以使用该sapper export命令执行此操作。如果需要,您还可以轻松切换到快速服务器。

与普通的 svelte 编译和其他一些框架相比,这具有以下优点:

  • 更好的搜索引擎优化
  • 可能更好的可访问性
  • 由于初始页面呈现,页面加载速度更快
  • 查看页面的非动态部分不需要 JavaScript
  • 组件范围内的 javascript 在运行时仍然可用
  • 没有运行时和虚拟 DOM - 更快更小的 javascript 包