尤雨溪:Vite 和 JavaScript 工具的未来!

在 10 月 3 日举行的 ViteConf 大会上,Vue、Vite 的作者尤雨溪发表了题为《Vite与JavaScript工具的未来》的演讲。本文将对此次演讲进行简要总结,带您一窥 Vite 及 JavaScript 工具的未来趋势!

Vite 和 Vitest 当前状态

npm 下载量

  • Vite:周下载量超过 1500 万次,相比去年同期已经翻倍了。

  • Vitest:周下载量超过 600 万次,正在迅速取代 Jest 成为首选的JavaScript 测试运行器。

尤雨溪:Vite 和 JavaScript 工具的未来!

State of JS 调查结果

Vite 和 Vitest 在几乎所有适用类别中都名列前茅:

尤雨溪:Vite 和 JavaScript 工具的未来!

相关阅读:State of JS 调查结果简析

生态系统

Vite 拥有一个广泛而强大的生态系统,现已成为构建单页应用时众多框架的首选默认工具,它几乎支持所有主流的 JavaScript 元框架,除了 Next.js 。

尤雨溪:Vite 和 JavaScript 工具的未来!

Vite 并不完美

Vite 的问题

Vite 极大地简化了网页开发过程,通过屏蔽底层复杂性,为用户提供了一个直观易用的开发环境。这一体验主要归功于其强大的底层技术支持,但这些工具也都不完美:

  • esbuild:快速进行依赖预打包、转换和压缩,但tree shaking和代码分割功能不如Rollup 完整和灵活,插件系统也相对僵化。

  • Rollup:适合生产构建,兼容丰富插件,打包应用效果更好。但由于是 JavaScript编写,速度上不及原生语言编写的 esbuild。

  • SWC:默认不需要,在构建React应用时,能提供更高的性能和转换效率,但体积庞大,是Vite及其所有依赖的两倍多。

这种架构就带来了一些问题:

  • 行为差异:esbuild和Rollup处理混合esm/cjs模块图时可能行为不一致,导致难以预见的错误。

  • 低效重复:工具反复解析、转换源代码为AST,并序列化回字符串,启用 source map 时效率更低。

  • 性能瓶颈:对于大规模项目,原生ESM开发服务器可能遭遇性能问题,影响开发体验。

为了上述问题,尤大决定开发自己的打包器(Rolldown),以统一并优化 Vite 的打包流程。

工具链的问题

Vite面临的挑战反映了JavaScript生态系统的发展历程。JavaScript从脚本语言成长为全球热门语言,社区为此创造了众多工具,应对用例增长和复杂性。这既是机会也是难题,带来了工具丰富性,但也存在碎片化、不兼容和低效等问题。

要解决这些问题,就需要为 JavaScript 建立一个统一的工具链。未来的工具链应该是这样的:

  • 统一:整合工具链,使用统一工具、AST、配置等,减少碎片化。

  • 高性能:优先使用 Go、Rust 等语言开发的工具,提升效率。

  • 模块化:工具链的组件可单独使用,支持跨语言互操作性。

  • 运行时无关:独立于JavaScript运行时,提高灵活性和兼容性。

创立 VoidZero

为了解决这些问题,尤大因此决定创立 VoidZero,一家致力于打造下一代 JavaScript 工具的公司。目前,公司已经筹集了由 Accel 领投的 460 万美元资金,并组建了一个全职团队来努力实现这一愿景。

尤雨溪:Vite 和 JavaScript 工具的未来!

团队目前正在做的事:

  • Oxc:将成为基础的语言工具链,包括解析器、语义分析、转换器、压缩器、解析器、检查器和格式化工具;

  • Rolldown:基于 Oxc 构建的打包器,将成为Vite未来版本的统一打包解决方案。

Oxc 当前进展

  • 进展

    • 已完成:解析器、代码检查器、路径解析器。

    • 转换器部分完成:支持TypeScript、JSX、React Refresh转换及isolatedDeclarations DTS 输出。

    • 当前重点:完善具备语法降级功能的Transformer。

    • 后续计划:压缩器与格式化工具处于原型阶段,待Transformer完成后推进。

  • 优势

    • 速度领先:在解析、检查、转换等关键领域,Oxc 均拥有最快性能。

    • 内存与体积优化:相较于SWC,Oxc使用内存更少,且二进制文件体积更小。

    • Rust crate编译效率:作为Rust crate使用时,Oxc在编译速度上优于依赖大量宏的项目。

尤雨溪:Vite 和 JavaScript 工具的未来!

Rolldown 当前进展

  • 进展

    • 已实现功能:支持CJS/ESM互操作性、Oxc 驱动的内置转换、tree sharking 优化、高级分块,以及90%的Rollup插件接口兼容性。

    • 当前重点:提升对CSS/HTML和资产的支持,以及测试集成到Vite中,替换esbuild和Rollup,并移植部分Vite内部插件到Rust以减少开销。

    • 进展状态:Rolldown驱动的Vite已通过大部分开发与构建测试,即将进行更多调整与打磨,随后发布1.0 beta版本。

  • 优势

    • 性能:在特定基准测试中,Rolldown速度几乎是esbuild的两倍,远超其他Rust打包器。

    • 内存管理优化:相较于基于Rollup的Vite,Rolldown在处理大规模应用时不会耗尽内存。

尤雨溪:Vite 和 JavaScript 工具的未来!

未来

即将推出的 Vite 6.0 的架构如下,其仍然依赖于 esbuild、Rollup、SWC。

尤雨溪:Vite 和 JavaScript 工具的未来!

Vite 的下一次迭代的架构如下,其将由 Rolldown 和 Oxc 驱动,提高开发/生产一致性,减少内部开销,并提高生产构建性能。

尤雨溪:Vite 和 JavaScript 工具的未来!

在更远的将来,将发布一个更依赖 Rolldown 的 Vite 版本,利用其强大的打包能力统一开发、模块运行和生产环境。这将消除网络瓶颈,确保环境间的高度一致性,并在各种场景下实现最佳性能。

尤雨溪:Vite 和 JavaScript 工具的未来!

目前,全捆绑模式仍处于早期原型阶段,但其性能表现非常值得期待。与多个未捆绑模块的基准测试相比,全捆绑模式下的页面加载速度提高了5倍以上,热模块替换(HMR)也几乎达到了即时响应。

当前首要任务是确保现有的 Vite 生态系统能够顺利地从 Rolldown 和 Oxc 中获益,而这一过程需要时间,未来可期!

本内容观点仅代表发布作者本人观点立场,欣文网平台只做信息内容展示和存储。发布作者:全网转载,转转请注明出处:https://www.xinenw.com/44009.html

(0)
上一篇 2024年10月10日 11:59
下一篇 2024年10月10日 12:00

相关推荐

  • 12万的马杀鸡机器人、踹不倒的钢铁小强……这届AI的花活儿,真的能落地了丨直击WAIC 2024

    昨日步数:13498。 文|王沁 邱晓芬 周鑫雨 拍摄采访|周鑫雨 常敏潇 邱晓芬 邓咏仪 制图|袁滢靓 编辑|邓咏仪 来源|智能涌现(ID:AIEmergence) 封面来源|WAIC 大模型的厮杀日趋白热化,而世界人工智能大会(WAIC)就是AI界的狂欢,AI界的春晚。 7月4日,WAIC在上海世博展馆开幕。在主论坛上,马斯克、姚期智、李彦宏等AI大咖齐…

    2024年7月6日
    2020
  • 景区路边摊的臭豆腐,到底有多脏

    无论是在老家的商业街,还是在千百公里外的旅游景区,你一定都能发现臭豆腐的身影。 臭豆腐以其独特的风味,牢牢抓住其追随者的味蕾,在中国小吃的江湖混战中霸占一席之地。  不过,这些街头随处可见的臭豆腐,真的能放心吃吗?   臭豆腐主要分为两类,一种是发酵型臭豆腐,也就是我们经常在超市里见到的瓶装臭豆腐,民间俗称“青方”;另一种是非发酵型臭豆腐,也叫油炸臭豆腐,一…

    2024年5月1日
    2560
  • 《黑神话:悟空》获满分,英伟达将为其定制专属游戏驱动

    昨日,国产3A游戏大作《黑神话:悟空》迎来了正式上市前的全球媒体评测解禁。 其中IGN海外总部给出8分,评测人表示,“尽管存在一些令人沮丧的技术问题,《黑神话:悟空》仍然是一款出色的动作游戏,拥有精彩的战斗、令人兴奋的BOSS、诱人的秘密和美丽的世界。” IGN中国给出10分,评测人表示,“《黑神话:悟空》是真正意义上放在全球市场也是极具竞争力的国产游戏,相…

    2024年8月20日
    2020
  • 豆瓣8.4,杀出一匹黑马

    作者 | 尹立青 编辑 | 吴擎 名满长安的画师,在成佛寺壁信手挥毫,一幅恢宏壮丽的《降魔变》渐渐成形,最后点睛之时,众人伸颈翘首,画师却掷笔而去。 莺歌燕舞的酒楼,推杯换盏之间,好事者问起,画师狂傲答曰:“魔王点睛,便有了三魂七魄,一旦脱壁而出索你的命,你不怕?” 不信邪的乐官出言讽刺,可却前脚踏出酒楼,后脚横死雨夜。怪异之处在于,他死于青面獠牙、背覆披风…

    2024年8月21日
    2350
  • 热血系列精神续作,竟然在《赛马娘感谢祭》?

    大概有很多人像我一样怀念FC上的热血系列。小时候玩到它的时候,我嘴上说不出“玩法创意”“娱乐性”“多人体验”这种论证词汇,但是知道一个篮球比赛,能靠把对手揍扁打赢比赛,实在是太欢乐了。 那个年代过去后,这种主打欢乐合作对战的游戏到现在已经演变出很多花样,但像热血系列这种无厘头的体育类对战,我好像很久都没体验过了。 这次我们体验到赛马娘IP的新作之后,好像重新…

    2024年8月20日
    1490

联系我们

400-800-8888

在线咨询: QQ交谈

邮件A:xinenw@qq.com

邮箱B:xinenw@163.com

工作时间:周一至周五,8:30-23:30;周六周日10:30-18:30;节假日休息

关注微信