151 - 《手撕源码 16:Vite 上》

发布于 2022年7月14日

一年多前翻过 Vite 源码,还整理了 https://github.com/sorrycc/toy-vite 在内部做过分享。一年过去,发现已经忘光了。趁着 Vite 3 发布,重新捡起来看一遍。

CLI 提供 dev、build、optmize 和 preview 功能。

dev 的流程是读取配置,创建 Http Server,绑中间件,初始化 Module Graph(依赖图谱),初始化 pluginContainer(插件体系),做 dep optimizier(依赖预编译),就搞定了。然后等着用户访问,url 过来之后做按需 transform(代码主要在这)。dev 还支持 middlewareMode,顾名思义,就是不启动 server,把 vite 作为中间件使用。

中间件包含 time、cors(基于 cors)、proxy(基于 http-proxy)、base、launchEditor、servePublic、transform、serveRawFs、serveStatic、spaFallback(基于 connect-history-api-fallback)、用户配置(放在 html 之前,所以用户可以改写 indexHtml 的内容)、indexHtml、vite404、erro

内容预览已结束

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