Rust Farm下一代构建引擎比Vite还快兼容Vite生态

两袖清风10个月前技术文档1315

Farm⭐️ 是基于 Rust 语言编写的下一代 Web 构建引擎,是目前最强大、最快、最稳定的 Rust Web 构建工具。

什么是 Farm

Farm 是一个非常快的基于 Rust 的 Web 构建工具,类似 webpack 和 vite,但更快。

farm resolve, load, transform 所有 asset(js/jsx/ts/tsx、css/sass/less、html、静态资源、json 等),并将它们打包成一系列可部署文件。

Farm 是一个速度极快的构建工具,可帮助您构建更快的 web/nodejs 应用程序。

Farm 官方文档:https://www.farmfe.org/zh/

功能特性

⚡ 超级快:核心的编译能力均使用 Rust 编译,最大限度并行编译,秒起项目,毫秒级 HMR,极致性能体验!

增量构建:模块级磁盘持久缓存,未更改的模块最多只编译一次,热启动时间降低 80%,搭配懒编译实现对任意规模项目 1s 启动以及预览

⚙️ 海量特性:内置支持 Html, Css, js/jsx/ts/tsx, 静态资源,

插件化 & Vite兼容:编译能力由插件实现,兼容 Vite 插件生态,支持 Rust、Js 插件。

⏱️ 懒编译:非首屏页面,按需编译,访问具体页面时才会编译,极大提速大型项目启动时间

✔️ 生产优化:支持 tree shake、压缩、语法降级、polyfill 等完整生产能力,支持降级到 ES5

局部打包:将模块按照依赖关系打包成 20 - 30 个左右的产物,同时 bundle 和 bundless 两种模式的极端,在保证加载性能的同时,提升缓存复用率

一致性:开发和生产使用完全一致的策略,开发所见即生产所得

兼容性:同时兼容现代浏览器和老旧浏览器(ES5)

性能优势

Farm 的性能表现让人印象深刻。

根据最新的性能对比数据,Farm 在多个关键指标上均优于 Vite:

冷启动速度对比:

image.png

热启动速度对比:

image.png

热更新 (根模块)速度对比:

image.png

热更新 (子模块)速度对比:

image.png

冷构建速度对比:

image.png

热构建速度对比:

image.png

Farm 的核心特性

Farm 的设计理念和技术实现,是其性能优势的基石:

超级快的编译速度:所有编译工作由 Rust 实现,利用 Rust 的性能优势,实现毫秒级的项目启动和 2ms 的 HMR 更新。丰富的编译能力:默认支持 Html、Css、Js、Jsx、Ts、Tsx、静态资源等模块的编译,满足前端开发的各种需求。懒编译策略:Farm 采用按需编译的方式,仅在模块加载时进行编译,进一步优化了启动速度。插件化架构:Farm 的所有功能都可以通过插件进行扩展,支持 Rust 和 Js 插件,提供了极大的灵活性,开箱即用支持 Vite 插件。开发与生产环境的一致性:Farm 确保开发环境和生产环境的编译行为一致,避免了环境不一致带来的问题。局部 Bundle:Farm 根据模块依赖和资源大小,智能地将项目拆分成多个小 Bundle,提升了资源加载速度和缓存命中率。


相关文章

抢先安装体验 Win11 24H2 "正式版"

抢先安装体验 Win11 24H2 "正式版"

微软将于今年下半年发布 Win11 24H2 正式版,微软将在这个版本中带来大量的 AI 新功能。现在 Win11 24H2 正式版已经确认为 26100 版本号,进入到了 Release Previ...

最优雅的支付宝和微信支付SDK详细文档手册-Yansongda Pay SDK

概述在开发了支付宝与微信支付后,看里面的api文档一团,很我方法都是自己写,找了很多网上没有好用的,能集成支付宝和微信支付的SDK,想在网上找相关的轮子,可是一直没有找到一款自己觉得逞心如意的,要么使...

Rolldown-基于Rust的JavaScrip打包工具

Rolldown-基于Rust的JavaScrip打包工具

Rolldown 的优势Rolldown 是一款用 Rust 重新编写的 Rollup 替代品。而 Rollup 使用的是 javascript。Rolldow...

优秀 Win10 / 11 定制版:ReviOS

优秀 Win10 / 11 定制版:ReviOS

ReviOS介绍目前「ReviOS」系统提供了两个版本,分别是 Win10 和 Win11 系统,最新版都基于 2022 制作。这里锋哥选择 Win11 版本在虚拟机安装体验。镜像大小 3.49 GB...

宝塔面板php7.3&7.4版本不支持ZipArchive扩展解决办法

宝塔面板php7.3&7.4版本不支持ZipArchive扩展解决办法

详情内容宝塔面板php7.3&7.4版本不支持ZipArchive,会提示报错Class ‘ZipArchive‘ not found解決。要手工安装zip扩展首先需要安装libzip。宝塔面...

网站增加浏览器标题图标favicon两种方法

网站增加浏览器标题图标favicon两种方法

第一种方法:直接在网站根目录增加favicon.ico。利于IconWorkshop软件制作一个正方形图标导出后放置网站根目录。第二种方法:html定义favicon图标。<link ...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。