将 svelte 应用程序构建为一组静态文件

Dje*_*ent 17 javascript svelte sveltekit

我想在我的下一个项目中使用 Svelte,因为它的语法简洁并且使用起来非常愉快。不幸的是,要在我的公司部署该应用程序,我无法node在服务器上使用或类似的东西。我只能nginx以静态文件的形式提供应用程序。

苗条有可能吗?我找不到任何可以让我这样做的东西,我尝试过的所有解决方案似乎都@sveltejs/adapter-static没有正确生成以这种方式使用它。我在网上找不到任何有关如何执行此操作的指南。

isa*_*pir 13

为了预渲染 SvelteKit 1.0 静态站点,您需要:

\n
    \n
  1. 安装静态适配器npm i -D @sveltejs/adapter-static

    \n
  2. \n
  3. 将以下内容放入svelte.config.js

    \n
  4. \n
\n
/**\n * from https://kit.svelte.dev/docs/adapter-static\n */\nimport adapter from \'@sveltejs/adapter-static\';\n\nexport default {\n    kit: {\n        adapter: adapter({\n            // default options are shown. On some platforms\n            // these options are set automatically \xe2\x80\x94 see below\n            pages: \'build\',\n            assets: \'build\',\n            fallback: null,\n            precompress: false,\n            strict: true\n        })\n    }\n};\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  1. 添加devDependenciespackage.json(可以去掉默认的adapter-auto):
  2. \n
\n
    "@sveltejs/adapter-static": "next",\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  1. 添加以下行src/routes/+layout.js- 如果文件不存在则创建该文件:
  2. \n
\n
    export const prerender = true;\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  1. 跑步npm run build
  2. \n
\n

目录中将生成静态文件build

\n

更多详细信息请访问https://kit.svelte.dev/docs/adapter-statichttps://github.com/sveltejs/kit/tree/master/packages/adapter-static#sveltejsadapter-static

\n


Lib*_*tas 7

如果您不使用 SvelteKit,则只需/build/复制npm run build. 这应该有效。


T.J*_*der 2

我认为Libertas在几周后发布的答案很可能就是您正在寻找的内容。

但无论如何,我都会将下面的内容留在这里,以防它对您或稍后的其他人有用:


SvelteKit(来自Svelte核心团队)支持服务器端渲染,以及生成静态站点的文档

静态站点

大多数适配器将为站点的任何可预渲染页面生成静态 HTML。在某些情况下,您的整个应用程序可能是可预渲染的,在这种情况下,您可以使用它@sveltejs/adapter-static@next为所有页面生成静态 HTML。完全静态的网站可以托管在各种平台上,包括 GitHub Pages 等静态主机。

(我的重点)