跳转到内容

从 SvelteKit 迁移

SvelteKit 是一个用于在 Svelte 之上构建 Web 应用程序的框架。

SvelteKit 和 Astro 有一些相似之处,可以帮助你迁移项目:

当你在 Astro 中重建你的 SvelteKit 网站时,你会注意到一些重要的不同之处:

  • Astro 网站是多页面应用(MPA),而 SvelteKit 默认为带有服务器端渲染的单页面应用(SPA),但也可以创建 MPA、传统的 SPA,或者你可以在一个应用中混合使用这些技术。

  • 组件:SvelteKit 使用 Svelte。Astro 页面是使用 .astro 组件构建的,但也支持React、Preact、Vue.js、Svelte、SolidJS、AlpineJS 和原始的 HTML 模板。

  • 内容驱动:Astro 旨在展示你的内容,并允许你仅在需要时选择性地添加交互性。现有的 SvelteKit 应用可能为高客户端交互性而构建。Astro 具有处理内容的内置功能,例如页面生成,但可能需要高级的 Astro 技术来包含使用 .astro 组件难以复制的项目,例如仪表盘。

  • Markdown 就绪:Astro 包含内置的 Markdown 支持,并为每个文件提供了一个特殊的 frontmatter YAML layout 属性用于页面模板。如果你正在转换一个基于 SvelteKit Markdown 的博客,你将不必安装单独的 Markdown 集成,也不必通过配置文件设置布局。你可以沿用你现有的 Markdown 文件,但你可能需要重新组织,因为 Astro 的基于文件的路由不需要为每个页面路由都创建一个文件夹。

要将 SvelteKit 博客转换为 Astro,请从我们的博客主题入门模板开始,或在我们的主题展示中探索更多社区博客主题。

你可以向 create astro 命令传递一个 --template 参数,以使用我们的官方入门模板之一来启动一个新的 Astro 项目。或者,你可以从 GitHub 上的任何现有 Astro 仓库开始一个新项目

终端窗口
npm create astro@latest -- --template blog

将你现有的 Markdown(或 MDX,通过我们的可选集成)文件作为内容,以创建 Markdown 或 MDX 页面

虽然基于文件的路由和布局组件在 Astro 中是相似的,但你可能希望阅读有关Astro 的项目结构的内容,以了解文件应该放在哪里。

要转换其他类型的网站,例如作品集或文档网站,请在 astro.new 上查看更多官方入门模板。你会找到每个项目 GitHub 仓库的链接,以及一键在 IDX、StackBlitz、CodeSandbox 和 Gitpod 在线开发环境中打开工作项目的链接。

更多迁移指南

贡献 社区 赞助