102 - 《手撕源码 02:sveltekit》

发布于 2022年4月21日

svelte 念做 [svelt]

sveltekit Star 数 8K,周下载 49K,主库 svelte 的周下载是 222K。作者是 Rich-Harris,他同时也是 svelte、rollup、magic-string 的作者,就职于 vercel。

实现用 JavaScript 而非 TypeScript,但有在注释里加类型,解不了类型时作者还在注释里吐槽了下 TypeScript… 作者也是实用主义,整个仓库只有少量的测试用例。因为没有插件等「花里胡哨」的功能,整体源码非常简单易懂,我上午花 1 个小时就看完 80% 功能,强烈建议想入门框架源码的同学阅读。

工程化和上一篇的 Astro 类似,turbo + typescript + prettier + eslint + pnpm + changeset + playwright,现代 monorepo 类 npm 包工程化的标配。产物是 type: module 格式。源码通过 rollup 打包到 dist 目录,打包时同时打包了依赖,所以我们看 kit 的 package.json,会发现大量用到的依赖写在 devDependencies。

部分依赖库。命令行基于 sade(900+ Star);https 证书用 selfsigned(Star 191)生成私钥和证书,实测并没有自动信任,所以体验可能没有 mkcert 的方案好;端口检测和查找用 Rich Harris 自研的 port-authority(Star 52)实现,可以实现更精准的检测端口、查找可用端口、获取端口进程、kill 端口进程等;colors 方案用 kleur(Star 1.3K);请求用的 no

内容预览已结束

此内容需要会员权限。请先登录以查看完整内容。