356 - 《Mako 近况 @ 2023.10.24》
今天 10.24 的 10:24 对内发布了 Mako RC。这是一个里程碑式的发布,和大家汇报下 Mako 的现状和计划。
1、从 [[Mako 发布 Alpha]] 到现在已经 3 个多月,Mako 在能力上做了很多补齐,在构建和产物性能方面也做了很多努力,同时为了发布后的稳定性做了不少工程化的事情,以及做了和内网框架 Bigfish 的深度集成。
2、Mako 在功能方面已是成熟的构建工具。我们补齐了 Tree Shaking、Code Splitting、Top Level Await、Transpile、Cache、Plugin 等能力,同时针对内网项目环境补充了 Less 的支持,以及细调了 CSS 加载问题、Auto CSS Modules、Px2rem、HMR 大量 DX 问题等之后,目前已能跑 80% 以上的项目。但是,需要注意的是,部分功能是需要一定的时间完善的。比如 Tree Shaking,我们的打包产物和 Webpack 还会有 10% - 20% 的差距;比如 Code Splitting,在产物尺寸和页面性能之间找一个好的平衡点,并不是件容易的事。同时,也还有不少边缘功能需要补齐,比如 Worker、Node 目标产物、多 Entry、Dev 阶段的 Tree Shaking、按需 External、Case Sensitive 检测等等。
当前架构图。
3、数据方面例行做了 Benchmark,见下图,分别是 Mac Intel 和 Mac M2 Max 的。代码是基于 Farm 和 Rspack 的 Benchmark 仓库加了 Mako 的,和他们相比各有优缺点,大家都是一个数量级的。但是,Benchmark 只能说明小部分问题,Benchmark 快其实跑真实项目不一定快。因为 Benchmark 有很多不同维度,同时大家日常的中后台项目的量级(模块数和依赖数)都远超这个项目,可能是他的 100 倍。
Mac Intel。
Mac M2 Max。
另外值得一提的是,Mako 还内置了另一种热更模式,