首页 > temp > JavaScript教程 >
-
SvelteKit 正式发布 Beta 版
作者:Rich Harris
日期:2021-3-23
原文:https://svelte.dev/blog/sveltekit-beta
耗时5个月,历经数百次 commit 后,摘此良辰吉日,邀君共品 SvelteKit Beta。
即便有一些已知的 BUG 仍未消除罄尽,部分缺失的功能亦亟待完善,但我们难掩兴奋之情,踌躇满志,并迫不及待地期望你愿浅试 SvelteKit 这杯“新茶”。
创建一个 SvelteKit 的项目轻而易举:
npm init svelte@next my-app
# 进入工程的目录
cd my-app
#安装依赖包
npm install
# 启动开发服务器,并打开浏览器
npm run dev -- --open
你可以在 kit.svelte.dev/docs 中查阅详细的文档。
如果你想将某个 Sapper 编写的应用迁移到 SvelteKit,请参看 kit.svelte.dev/migrate,该文章指引您弭平两者差异。
SvelteKit 的源码地址是:https://github.com/sveltejs/kit
Issues和 Pull Request 目前是禁用状态,容我们先行整理收拾妥善之后,再选日开放。
等等,什么是 SvelteKit?
正如 React 之于 Next,Svelte 对应的 Web 框架便是 SvelteKit。
它是一个用 Svelte 构建应用的框架,包括服务器端渲染(SSR)、路由、针对 JS 和 CSS 的代码分割,以及针对不同 Serverless 平台生成不同代码的适配器等等。
如果你曾有 Sapper 开发经验,那么 SvelteKit 正是它的继任者。
弃 Snowpack 从 Vite
此前,我在视频中对 Snowpack 大为赞赏,不过令人始料未及的是,SvelteKit 终究选择使用 Vite。
曾在憧憬 SvelteKit 未来之时,我们邂逅了 Snowpack,一见倾心。
Snowpack 别创一格,与以往的 Webpack 和 Rollup 其方式大相径庭,Snowpack 是一个非打包(unbundled)的开发服务器,它使用浏览器的本地 import
,并实时为 Svelte 组件等内容进行 1:1 置换。
因此,应用可以快速启动,使用简单的缓存和即时模块热加载,一经入坑,再难回头。
Vite 和 Snowpack 如出一辙。
Vite v1 不适合 SvelteKit,它以 Vue 为中心 (Vite 和 Vue 都是 Evan You 创建的),并且使服务器端渲染变得困难。
但 Vite v2 则与框架无关,以 SSR 为核心进行设计。
它具有强大的功能,如 CSS 代码分割(此前我们必须自己实现)。当我们并排评估这两个工具时,我们作出了一个非常艰难的决定:Vite 适逢其时,与 SvelteKit 的需求及未来的理想更为相符,更合其志。
我们对 Snowpack 团队深表感谢,在开发早期我们紧密合作,为未来几年的 Web 开发指明道路。强烈推荐你去尝试这个很棒的工具。
作死是一项极限运动
SvelteKit 虽然还处于测试阶段,但这并不代表没人敢在生产环境去用它。
在过去的12个月里,我在《纽约时报》花了很多时间在冠状病毒的跟踪工作上。
它使用了一个定制的工作流程,为大多数图形提供强大的支持,它不是为大型多页面的而项目设计的。
去年年底,当我们决定为美国大约 3000 个县创建各自独立的页面时,我们很快意识到整个项目需要进行重构。
尽管它还远未可用,但 SvelteKit 是唯一能够满足那些千奇百怪的需求的框架(任何在新闻编辑室工作过、和 CMS 打过交道的人都懂的)。
现在,它已支持县级风险页面,我们正在将现有页面迁移到 SvelteKit。
临危授命,胆敢使用半成品来开发一个会被数百万人看到的应用程序,有种自寻死路的感觉(我永远感激同事的宽容)。
一般人我都不推荐他这么做。
但它使我们能够更快地开发应用程序,对比其他框架来说更显强大。
通往 v1.0 之路
你可以在我们的问题跟踪器上,看到 v1.0 里程碑的待解决的问题列表。除此以外,我们还计划升级文档并添加更多的适配器。
最重要的是,我们需要你的反馈,以帮助我们做出最好的应用框架。请尝试一下,告知我们哪些功能有所缺失。
非常感谢那些不顾深坑警告和在缺乏文档的情况下就已尝试过 SvelteKit 的所有人。
你的反馈非常宝贵。
我特别要感谢 GrygrFlzr 的工作,他维护了非官方文档和一个分支,在我们缺少 Windows 支持的时候修复了它。
dominikg 在 Svite 上的工作为 SvelteKit 中的 Vite 整合奠定了基础。
现在,他们已是团队中的红人。