00:39:15
从缓慢的构建过程到闪电般的开发体验,Vite如何通过社区协作成为现代前端开发的基石?这部纪录片揭示了其从原型到行业标准的崛起之路。
在21世纪初,JavaScript并未被广泛重视,常被视为有缺陷的语言。开发者们逐渐意识到,他们向客户端发送了过多的JavaScript代码,导致性能问题。早期工具如Grunt或Gulp用于构建管道,但过程混乱如“意大利面式”的代码堆砌。浏览器被视为简单的执行环境,而非创新平台。
随着单页面应用(SPA)的兴起,应用复杂度和规模急剧增长,Webpack应运而生。它通过JavaScript处理所有资源(HTML、CSS、图像),并假设一切都需要打包。尽管Webpack是当时的主流工具,但随着项目扩大,其启动速度变慢,构建时间可达5分钟以上,开发服务器重启时间足以让开发者去喝杯咖啡。配置Webpack变得极其复杂,许多人感到需要博士学位才能设置工具链。
Evan You,Vue.js的创建者,在2014年开发Vue时,官方CLI基于Webpack。尽管Webpack提供了热模块替换(HMR)功能,但随着项目规模扩大,HMR性能急剧下降,开发体验恶化。Evan对Vue用户的开发体验感到不满,决定探索新路径。
2020年4月,Evan突发灵感:如果利用原生ES模块(Native ES Modules),浏览器可以直接理解模块,无需打包。他连夜开发原型,实现了基于原生ESM的Vue Dev Server,速度提升高达50倍,保存后更新仅需100毫秒而非5秒。Evan将该项目命名为Vite,并在几天内发布了第一个版本。
Vite早期与Snowpack等工具竞争。Snowpack旨在消除打包,而Vite最初专注于Vue开发者。但Evan意识到需要使Vite框架无关,并采用Rollup插件接口,实现开发和生产环境的一致性。这导致Vite 2.0的完全重写,使其成为通用工具。
关键转折点包括SvelteKit从Snowpack转向Vite,以及Astro团队加入Vite社区。这些事件展示了Vite的插件系统和性能优势。到2021年,Vite下载量从几乎为零增长至每周50万次,并持续指数级增长。
Vite团队通过GitHub讨论扩大,核心成员如Anthony Fu、Underfin和Matias加入。团队面临维护负担增加的问题,但通过公司支持(如StackBlitz雇佣Matias)解决了可持续性问题。Anthony开发了Vitest,一个原生于Vite的单元测试运行器,进一步巩固了生态系统。
Vite生态系统CI工具的引入,允许在发布前测试下游项目(如SvelteKit、Vue、Nuxt),确保兼容性。这使发布过程更平滑,减少了破坏性变更的风险。
到2022年,Vite被众多元框架和工具采纳,包括React(通过替代Create React App)、SvelteKit、SolidStart、Laravel、Storybook、Playwright和Cypress。Theo Browne等影响者推动Vite在React生态中的使用,引发广泛讨论。
ViteConf 2022展示了社区团结,演讲者来自竞争框架,体现了“JavaScript联合国”的精神。下载量在2023年达到每周1400万次,接近并有望超越Webpack。
Evan You和团队展望构建统一工具链,解决JavaScript生态的碎片化问题。他们计划开发底层支持层,减少对第三方依赖(如ESbuild和Rollup)的依赖,旨在提升开发者生产力和应用可维护性。
Vite的成功源于其简单性、速度和社区协作,成为现代前端开发的基础设施。其故事强调了开源文化的力量,以及为正确理由做事所带来的回报。