117 - 《MFSU V4 要来了吗》
发布于 2022年5月17日
关于什么是 MFSU,见 40 - 《比 Vite 还快的 MFSU》 。
MFSU V3 有什么问题?其实从 MFSU 从 V1 到 V3,都是先做项目构建,构建过程中通过 babel 插件分析出有哪些依赖需要走 MF 预编译,然后再做依赖的预编译。这么做的好处是能找到 100% 的所有依赖,覆盖率很高。缺点也很明显,就是串行,尤其是项目源码本身文件多编译慢的场景下,带来的问题会更显著。
项目代码构建 -> 拿到依赖数据 -> 依赖预编译
这个问题会在 MFSU V4 去解,解法是提前做「源码分析」,拿到依赖数据,然后根据此数据并行地去做「项目代码构建」和「依赖预编译」。项目代码构建时根据依赖数据决定哪些要走 MF 的 Remote 加载;依赖预编译直接拿依赖数据去做全量编译,产物供项目代码去加载使用。
源码分析 -> 项目代码构建
-> 依赖预编译
实现方式比较简单,用 fast-glob 找到所有 js 类