SvelteKit 瞬间无样式 html

2024-02-17

我通过 sveltekit cli 命令创建了一个基本应用程序。我选择的选项是 scss 和 typescript。当我启动应用程序的一瞬间,我看到了无样式的 html。每次我创建的每个项目都会发生这种情况。我做了一些测试,看起来 css(app.scss) 是在 html(localhost) 之后加载的。另一个似乎一致的现象是每次我重新加载页面时都会发生这种情况,但不会在导航时发生。这表明它可能是服务器端的。 在我看来,html 和 css 应该加载在同一个文件中,尽管 SvelteKit 可能有不同的方法。

我和 Sapper 遇到了同样的问题并解决了。但我忘了我是怎么修好的。此外,随着新的 SvelteKit 设置,许多事情都不同了。你们知道如何解决这个问题吗?

提前致谢


SvelteKit 在开发模式下不会将所有内容捆绑在一起,并注入对 HMR 的支持。这可能会导致出现无样式内容的闪烁。

当您在生产模式中时,无样式内容的闪烁应该消失使用适配器部署 https://kit.svelte.dev/docs#adapters.

This 库存 SvelteKit 模板 https://svelte-kit-adapter-static.netlify.app/不闪烁无样式的内容。唯一的变化是将适配器从节点适配器更改为静态适配器,以便它可以托管在 Netlify 上。 (我也用Netlify适配器确认过,所以静态和动态没有区别。)

如何使用库存 SvelteKit 模板进行测试:

npm init svelte@next
yarn
yarn dev --open  # Dev server: flashes of unstyled content.

yarn build
cd build
node index.js    # Production server: no flashes of unstyled content.

解释自SvelteKit 公告 https://svelte.dev/blog/whats-the-deal-with-sveltekit#How_is_this_new_thing_different:

现在,我们看到了非捆绑式开发的兴起 工作流程,这更加简单:而不是急切地捆绑您的 应用程序,开发服务器可以提供模块(转换为 JavaScript,如果 必要)按需,这意味着启动基本上是即时的 无论您的应用程序变得多大。

...

这并不是说我们要完全放弃捆绑商。依然是 对于优化您的应用程序以进行生产至关重要,SvelteKit 使用 Rollup 使您的应用程序尽可能快速、精简 (其中包括将样式提取到静态 .css 文件中)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SvelteKit 瞬间无样式 html 的相关文章

随机推荐