跳转到内容
搜索文档

SvelteKit

最后更新 查看 MarkdownAgent 设置

SvelteKit 是使用 Svelte 构建现代 Web 应用的官方框架,Svelte 是日益流行的开源用户界面创建工具。与大多数框架不同,SvelteKit 使用 Svelte(一种将组件代码编译为高效 JavaScript 的编译器),从而能够交付快速、响应式的应用,并在应用状态变化时精准更新 DOM。

在本指南中,你将创建新的 SvelteKit 应用并使用 Cloudflare Pages 部署。 你将使用 SvelteKit,这是用于构建各种规模 Web 应用的官方 Svelte 框架。

设置新项目

使用 create-cloudflare CLI (C3) 设置新项目。C3 将创建新项目目录,启动 SvelteKit 官方设置工具,并提供即时部署选项。

要使用 create-cloudflare 创建新的 SvelteKit 项目,请运行以下命令:

npm create cloudflare@latest -- my-svelte-app --framework=svelte --platform=pages

SvelteKit 将提示你进行自定义选择。对于模板选项,选择应用/项目选项之一。其余回答不会影响本指南的其余部分。选择适合项目的选项。

create-cloudflare 随后将安装依赖,包括 Wrangler CLI 和 SvelteKit @sveltejs/adapter-cloudflare 适配器,并询问设置问题。

安装项目依赖后,启动应用:

npm run dev

继续之前

所有框架指南都假定你已具备 Git 的基础知识。如果你是 Git 新手,请参阅这份精简 Git 手册,了解如何在本地设置 Git。

如果你使用 SSH 克隆,则必须在每台用于向 GitHub 推送或拉取的计算机上生成 SSH 密钥

更多信息请参阅 GitHub 文档Git 文档

创建 GitHub 仓库

访问 repo.new 创建新的 GitHub 仓库。创建新仓库后,进入新创建的项目目录,在终端中运行以下命令,准备并将本地应用推送到 GitHub:

git init
git remote add origin https://github.com/<your-gh-username>/<repository-name>
git add .
git commit -m "Initial commit"
git branch -M main
git push -u origin main

SvelteKit Cloudflare 配置

要在 Cloudflare Pages 上使用 SvelteKit,需要向应用添加 Cloudflare 适配器

  1. 在终端运行 npm i --save-dev @sveltejs/adapter-cloudflare 安装 Cloudflare 适配器。
  2. svelte.config.js 中包含适配器:
- import adapter from '@sveltejs/adapter-auto';
+ import adapter from '@sveltejs/adapter-cloudflare';

/** @type {import('@sveltejs/kit').Config} */
const config = {
  kit: {
    adapter: adapter(),
    // ... truncated ...
  }
};

export default config;
  1. (若使用 TypeScript)包含对环境变量的支持。包含 KV namespace 和其他存储对象的 env 对象通过 platform 属性与 context 和 caches 一起传递给 SvelteKit,这意味着你可以在 hooks 和 endpoints 中访问它。例如:
declare namespace App {
    interface Locals {}

+   interface Platform {
+       env: {
+           COUNTER: DurableObjectNamespace;
+       };
+       context: {
+           waitUntil(promise: Promise<any>): void;
+       };
+       caches: CacheStorage & { default: Cache }
+   }

    interface Session {}

    interface Stuff {}
}
  1. 在端点中使用 env 访问添加的 KV 或 Durable Objects(或 generally 任何绑定(binding)):
export async function post(context) {
	const counter = context.platform.env.COUNTER.idFromName("A");
}

使用 Cloudflare Pages 部署

通过 create-cloudflare CLI (C3) 部署

如果你使用 create-cloudflare(C3) 创建新的 Svelte 项目,C3 将安装项目所需的所有依赖,并提示你通过 CLI 部署项目。如果部署,你的站点将上线,并会提供部署 URL。

通过 Cloudflare 仪表板部署

要将站点部署到 Pages:

  1. 在 Cloudflare 仪表板中,前往 Workers & Pages 页面。

    Go to Workers & Pages ↗
  2. 选择 Create application(创建应用程序)

  3. 选择 Pages 选项卡。

  4. 选择 Import an existing Git repository(导入现有 Git 仓库)

  5. 选择你创建的新 GitHub 仓库,然后选择 Begin setup(开始设置)

  6. Build settings(构建设置) 部分,选择 SvelteKit 作为 Framework preset(框架预设)。你的选择将提供以下信息:

Configuration optionValue
Production branchmain
Build commandnpm run build
Build directory.svelte-kit/cloudflare

可选:你可以自定义 Project name(项目名称) 字段。它默认为 GitHub 仓库名称,但不必一致。Project name(项目名称) 值将分配为你的 *.pages.dev 子域名。

完成配置后,点击 Save and Deploy(保存并部署) 按钮。

你将看到首次部署流水线正在进行。Pages 安装所有依赖并按指定方式构建项目。

每次推送新提交时,Cloudflare Pages 都会自动重新构建并部署 SvelteKit 项目。

此外,你还可以使用预览部署,对 pull request 重复构建和部署流程。这样可以在部署到生产环境之前,通过真实 URL 预览项目更改。

Functions 设置

在 SvelteKit 中,functions 编写为端点。项目根目录 /functions 目录中的 Functions 不会包含在部署中,部署编译为单个 _worker.js 文件。

要获得与 Pages Functions onRequests 等效的功能,需要在 SvelteKit 中编写标准请求处理程序。 例如,以下 TypeScript 文件的行为类似 onRequestGet

import type { RequestHandler } from "./$types";

export const GET = (({ url }) => {
	return new Response(String(Math.random()));
}) satisfies RequestHandler;

了解更多

完成本指南后,你已成功将 Svelte 站点部署到 Cloudflare Pages。要开始使用其他框架,请参阅框架指南列表

这篇文档对您有帮助吗?