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

两袖清风1年前技术文档1672

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,提升了资源加载速度和缓存命中率。


相关文章

Jenkins Publish Over SSH实战指南:常见问题与解决方案

Jenkins Publish Over SSH实战指南:常见问题与解决方案

最近计划对Jenkins的构建项目进行优化,将传统的scp命令替换为Publish Over SSH插件来执行远程命令和文件传输操作,从而提升安全性和简化流程。本文将分享我在使用Jenkins Pub...

宝塔面板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 ...

优秀 Win10 / 11 定制版:ReviOS

优秀 Win10 / 11 定制版:ReviOS

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

Rolldown-基于Rust的JavaScrip打包工具

Rolldown-基于Rust的JavaScrip打包工具

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

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

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

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

发表评论    

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