用途
本技能用于在需要构建 SvelteKit 应用时提供指导,包括新建项目、选择渲染模式、理解项目结构与路由约定,以及在 SvelteKit 的处理器中使用 Web 平台 API。资料明确,Svelte 是 UI 组件层,SvelteKit 是包裹它的应用框架;当需要一个以上“页面”、后端能力或 SEO 时,应使用 SvelteKit。
主要能力
- 项目创建:使用
npx sv create my-app引导项目;支持--template minimal|demo|library、--types ts、--no-add-ons、--install npm等参数;可用npx sv add prettier eslint vitest playwright tailwindcss追加常用插件。 - 项目类型与渲染模式:通过适配器与页面级导出(
prerender = true、ssr = false、csr = false)组合出默认 SSR+CSR、SSG、SPA、MPA、独立后端、Serverless、Node/VPS、容器、库、离线/PWA、移动、桌面、浏览器扩展、嵌入式等多种形态,并给出每种形态的适配器与配置示例。 - 项目结构:说明
src/lib、src/lib/server、src/params、src/routes、src/app.html、src/error.html、hooks.client.js、hooks.server.js、service-worker.js、instrumentation.server.js、static、tests、svelte.config.js、tsconfig.json、vite.config.js等文件与目录的作用;并提供$lib、$lib/server别名规则。 - svelte.config.js:给出最小配置示例,包含
preprocess、kit.adapter、kit.alias等字段,并提示可参考更多常见配置的示例文件。 - Web 标准:列出 fetch、Request、Response、Headers、FormData、ReadableStream、URL、URLSearchParams、crypto 在 load、hooks、+server.js 等位置的使用方式;特别说明 load 与 +server.js 内的 fetch 支持相对 URL 并自动保留凭据。
- 路由:以文件系统为路由器,说明
+page.svelte、+page.js、+page.server.js、+layout.svelte、+layout.js、+layout.server.js、+server.js、+error.svelte的职责,并给出+page、+layout、+server.js、+error.svelte的代码示例;同时说明$types自动生成类型模块的用途(PageLoad、PageServerLoad、LayoutLoad、LayoutServerLoad、RequestHandler、PageProps、LayoutProps 等)。 - 快速修复与易错点:列出常见问题与解决方式,例如找不到
$lib、+page.server.js数据不显示、布局未嵌套、动态参数 404、水合不匹配、不能从客户端导入$lib/server、Service Worker 未更新、app.html中%sveltekit.body%放置位置、类型提示等。 - FAQ:回答是否需要 TypeScript、能否使用 Svelte 5 runes、如何从
+page.server.js调用后端、+page.js与+page.server.js是否可共存、API 密钥放置位置、error(404)与throw的区别、查询参数获取、静态化站点、与 Next.js/Nuxt 的差异等问题。
使用方式
- 新建项目:
npx sv create my-app,随后cd my-app、npm install、npm run dev(默认 http://localhost:5173)。 - 非交互创建:
npx sv create my-app --template minimal --types ts --no-add-ons --install npm。 - 追加插件:
npx sv add prettier eslint vitest playwright tailwindcss。 - 纯 Svelte(无路由、无 SSR)可用 Vite:
npm create vite@latest my-app -- --template svelte。 - 路由页面开发:在
src/routes下按文件夹创建路由,用+page.svelte渲染 UI,用+page.js(通用 load)或+page.server.js(仅服务端 load 与表单动作)加载数据,用+layout.svelte包裹页面,用+server.js定义 API 端点,用+error.svelte定义错误边界。 - 类型安全:为各路由文件使用自动生成的
./$types类型,如PageLoad、PageServerLoad、RequestHandler、PageProps等。
适用场景
- 需要 SEO、服务端渲染、静态生成、单页应用、多页应用或混合渲染的 Web 项目。
- 需要文件系统路由、数据加载、表单动作与 API 端点的一体化开发。
- 需要部署到 Vercel、Netlify、Cloudflare、Node 服务器、容器,或打包为移动/桌面/浏览器扩展/嵌入式应用。
- 需要离线/PWA 能力,或需要把 Svelte 组件发布为库。
限制
- 资料未提供收费、价格、性能数据或具体效果说明,相关内容暂未提供。
- 资料为 SvelteKit 概览与技能文档,具体 API 细节应以官方文档为准;部分示例引用
examples/与references/下的文件,但未展开其全部内容。 - 文中提及的部分能力依赖第三方适配器、Tauri、Capacitor、Wails、Electron 或社区适配器,具体行为以对应项目为准。
- 未提供的内容不在此补充。