当地时间2022年10月25日,Vercel公司宣布了它们的新开源项目Turbopack。
Turbopack是什么
Turbopack是Vercel公司出的一款前端打包工具,自称为Webpack的继任者,用Rust编写。 Vercel公司又是干什么的呢?Vercel提供给前端开发人员部署网站的云服务。因此可以说它是一个云服务商。一进到它的】公司主页,就可以看到一个大大的Deploying按钮。它的拳头产品有Next.js。这个相信大家应该不陌生。
既然敢说是Webpack的继任者,那它必须有拿得出手的干货。 下面咱们看一下它号称都有哪些干货。
Rust很快
Vercel公司网站上说,用基于Rust的工具替换掉基于Javascript的工具后,带来了一系列的性能提升。替换掉Babel后,编译(transpilation)速度是原来的17倍。替换掉了Terser,压缩的速度是原来的6倍。 Javascript的构建工具基本都替换掉了,就还剩一个:Webpack。Webpack已经被下载了超过30亿次。它已经成为了Web构建工具的必要组成部分。因此改进一下它实在是太有必要了。而改进它的第一步就是用Rust替换Javascript。
Turbopack由Webpack的创造者领导
如果作为Webpack的竞争对手,Turbopack自称是Webpack的继任者,是下一代的Web打包工具,那大家可能不太相信,因为很有可能是为自己打广告而说的大话。但是Turbopack是由Webpack的创造者Tobias Koppers领导的项目,他于2021年四月份宣布加入了Vercel公司。Webpack的创造者都替Turbopack打气,那自然就有一定的可信度了。 这也算是干货之一吧。
比Webpack快700倍
Turbopack是基于一个新的渐进式架构开发的,以便提供最快速的开发体验。 在大型应用开发中,开发人员不断的修改代码,然后查看更新结果,Turbopack的更新速度比Vite快10倍,比Webpack快700倍。在更大型的应用中,差距可拉大到比Vite快20倍。以上这些数据都是Vercel公司自己声称的,实际表现还需要我们实际使用验证。
为什么这么快?
-
Vercel公司声称,在开发阶段,Turbopack仅对最小必要范围的资源(assets)进行打包,所以启动速度极快。一个有3000个模块的应用,Turbopack需要仅1.8秒启动,而Vite需要11.4秒。
-
Turbopack的架构充分使用缓存机制,从来不做同样的事情两次。 Turbopack在Turbo的基础上创建,Turbo是用Rust写的一个开源的渐进式记忆框架。Turbo可以缓存函数的运行结果。当程序再次运行时,只要函数的输入没有变,函数就不需要重复运行。这种细力度的架构可以让你的程序在函数层面上省去大量的工作。
目前的状态
目前Turbopack还处于alpha版的状态,显然还不适合用于生产。
总结
总之Turbopack的筹码就是快。另外在笔者看来,用Webpack的创造者作为项目带头人也是Turbopack可能会成功的一个重要因素。