公众号:程序员白特,欢迎一起交流学习~
原文作者:这波能反杀
过年期间我没怎么发文章,但是我也没闲着。在这个空闲时间,把 rust
基础以及个别生态技术方案扎扎实实的,系统的学习了一下。学习他的初衷是因为 rust 可以支持鸿蒙应用的原生级别的开发,为进阶资深级别的鸿蒙开发者做技术储备。
可这不学不知道,一学吓一跳。这才发现 rust 生态,正在以一种锐不可当的气势,全方位、无死角的入侵前端开发的方方面面。最关键的是,由于有后发优势,这些技术方案往往都比已有的前端方案更加先进、更加科学、性能更高…
Farm
Farm 是一个使用 rust 编写的极速构建引擎。在它的宣传文档中,认为自己比 Webpack 快 10 倍以上,比 vite 快 5 倍。很显然,这是一款想要精准狙击 vite 的前端项目构建工具。
由于 vite 对于项目内的模块采取的是请求时编译的策略,并且对源码不 bundle,因此,根据字节架构团队内部的经验,当项目规模巨大的时候,vite 的首次页面加载时间可能长达数十秒「页面首次加载时,加载了大量的模块」,刷新时极其卡顿,并且由于巨大的请求量可能导致浏览器崩溃,影响开发体验。
而且 vite 在开发环境使用 esbuild 进行预编译,在生成环境使用 bundler rollup,处理方式不一样,偶尔可能会出现开发环境与线上行为不一致的情况,一旦出现不一致,则意味着巨大的排查成本。
针对 vite 的痛点,Farm 使用 rust 重新实现了对 css/ts/js/sass
的编译能力,能实现毫秒级启动项目,对于大部分情况,能讲 hmr 时间控制在 10ms 以内。
Turbopack
相比于 Farm,Turbopack
则显得更加和值得信赖,并且由于 next.js 的加持,它也得到了更多的关注。