SvelteKit 正式进入公开测试阶段
我们非常期待收到您的反馈
时机已到。经过五个月的开发和数百次提交,我们终于邀请您体验 SvelteKit 测试版。它尚未完成——存在一些已知的错误和一些缺失的功能——但我们对它的发展方向感到非常满意,并迫不及待地想让您尝试一下。
启动新项目很容易
# create the project
mkdir my-app
cd my-app
npm init svelte@next
# install dependencies
npm install
# start dev server and open a browser tab
npm run dev -- --open
您可以在 svelte.dev/docs/kit 找到文档。如果您有一个想要迁移到 SvelteKit 的 Sapper 应用程序,您可以在 svelte.dev/docs/kit/migrating 找到说明。
源代码可在 github.com/sveltejs/kit 获取。在我们完成内部整理工作期间,问题和拉取请求功能已禁用,但我们将在不久的将来将其完全开放。
等等,SvelteKit 是什么?
可以将其视为 Svelte 的 Next。它是一个使用 Svelte 构建应用程序的框架,包含服务器端渲染、路由、JS 和 CSS 的代码分割、针对不同无服务器平台的适配器等等。
如果您熟悉 Sapper,那么 SvelteKit 就是 Sapper 的继任者。
从 Snowpack 到 Vite
在 发布视频 中,我曾对 Snowpack 赞不绝口,因此 SvelteKit 在幕后使用 Vite 可能会让人感到意外。当我们开始思考 SvelteKit 应该采取何种形式时,我们尝试了 Snowpack,并一见钟情。
Snowpack 创建了一个全新的开发工具类别。与过去几年中我们一直在使用 webpack 和 Rollup 对应用程序进行打包不同,Snowpack 是一个未打包的开发服务器,它利用浏览器的原生 import
并对 Svelte 组件等内容进行 1:1 的实时转换。因此,您可以获得快速的启动速度、简单的缓存和即时的热模块替换。一旦体验了这种工作方式,您就会对其他任何方式感到厌倦。
Vite 与 Snowpack 属于同一类别。虽然 Vite 1 不适合 SvelteKit——它以 Vue 为中心(Vite 和 Vue 都是由 Evan You 创建的),并且难以进行服务器端渲染——但 Vite 2 是框架无关的,并且以 SSR 为核心进行设计。它还具有强大的功能,例如 CSS 代码分割,我们之前不得不自己实现这些功能。当我们并排评估这两项技术时,我们不得不承认 Vite 更符合 SvelteKit 的需求,并且会为我们提供实现我们梦想框架的最佳机会。
我们对 Snowpack 团队深怀感激之情,感谢他们在开发早期与我们紧密合作,以及为未来几年 Web 开发指明了方向。它是一个很棒的工具,您绝对应该尝试一下。
将内部测试作为极限运动
SvelteKit 确实处于测试阶段,但这并不意味着它没有在生产环境中使用。
我的日常工作是在纽约时报,过去 12 个月里,我大部分时间都在致力于我们的 冠状病毒追踪器。它使用了纽约时报大部分图形使用的自定义工作流程版本,该工作流程并非为大型多页面项目而设计。当我们去年年底决定为美国约 3000 个县中的每一个创建页面时,我们很快意识到需要彻底重新构建项目。
尽管它远未准备好,但 SvelteKit 是唯一满足我们特殊需求的框架。(任何在新闻编辑室工作过并与他们的 CMS 发生冲突的人都会明白我的意思。)如今,它为我们的 县风险页面 提供支持,我们正在将现有页面迁移到 SvelteKit 应用程序中。
使用未完成的软件来构建一个将被数百万人看到的应用程序是一种风险,一般我不建议这样做。但它使我们能够更快地开发应用程序,并且使框架本身比原本更加强大。
通往 1.0 的道路
您可以在我们的 问题跟踪器 上查看 1.0 里程碑中未解决的问题列表。除了这项工作之外,我们还计划升级文档并添加更多 适配器。
最重要的是,我们需要您的反馈来帮助我们构建最佳的应用程序框架。请尝试一下,并告诉我们缺少哪些部分。
非常感谢所有在“此处有巨龙”警告和缺乏文档的情况下尝试过 SvelteKit 的人;您提供的幕后反馈非常宝贵。特别是,我要感谢 GrygrFlzr 的工作,他在我们缺乏 Windows 支持时维护了非官方文档和一个添加了 Windows 支持的分支;以及 dominikg 在 Svite 上的工作,为 SvelteKit 的 Vite 集成奠定了基础。他们现在都已加入我们的团队。