SuperAPI AI 工具集

sveltekit-overview

前端与建站

查看项目

更新于 10-16 13:16

技能介绍

用途

本技能用于在需要构建 SvelteKit 应用时提供指导,包括新建项目、选择渲染模式、理解项目结构与路由约定,以及在 SvelteKit 的处理器中使用 Web 平台 API。资料明确,Svelte 是 UI 组件层,SvelteKit 是包裹它的应用框架;当需要一个以上“页面”、后端能力或 SEO 时,应使用 SvelteKit。

主要能力

  1. 项目创建:使用 npx sv create my-app 引导项目;支持 --template minimal|demo|library、--types ts、--no-add-ons、--install npm 等参数;可用 npx sv add prettier eslint vitest playwright tailwindcss 追加常用插件。
  2. 项目类型与渲染模式:通过适配器与页面级导出(prerender = true、ssr = false、csr = false)组合出默认 SSR+CSR、SSG、SPA、MPA、独立后端、Serverless、Node/VPS、容器、库、离线/PWA、移动、桌面、浏览器扩展、嵌入式等多种形态,并给出每种形态的适配器与配置示例。
  3. 项目结构:说明 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 别名规则。
  4. svelte.config.js:给出最小配置示例,包含 preprocess、kit.adapter、kit.alias 等字段,并提示可参考更多常见配置的示例文件。
  5. Web 标准:列出 fetch、Request、Response、Headers、FormData、ReadableStream、URL、URLSearchParams、crypto 在 load、hooks、+server.js 等位置的使用方式;特别说明 load 与 +server.js 内的 fetch 支持相对 URL 并自动保留凭据。
  6. 路由:以文件系统为路由器,说明 +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 等)。
  7. 快速修复与易错点:列出常见问题与解决方式,例如找不到 $lib、+page.server.js 数据不显示、布局未嵌套、动态参数 404、水合不匹配、不能从客户端导入 $lib/server、Service Worker 未更新、app.html 中 %sveltekit.body% 放置位置、类型提示等。
  8. 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 或社区适配器,具体行为以对应项目为准。
  • 未提供的内容不在此补充。