局部打包
局部打包(Partial Bundling
)是 Farm 用来打包模块的策略,类似于其他打包工具,但 Farm 的 局部打包
目标不同。
与其它打包工具不同,Farm不会尝试将所有内容打包在一起,而是使用像 splitChunks
之类的优化策略将其拆分出来,相反,Farm会将项目直接捆打包成多个输出文件。例如,如果需要数百个模块来启动一个html页面,Farm将尝试将它们直接打包成20到30个输出 文件。Farm将这种行为称为局部打包
。
Farm局部打包的目标是:
- 减少请求数量和请求层次: 将数百上千个模块请求减少到20-30个请求,避免由于依赖层次结构而逐个加载模块,从而加快资源的加载。
- 提高缓存命中率: 当模块发生更改时,确保只有少数输出文件受到影响,因此可以为项目提高缓存命中率。
对于传统打包工具,我们可能很难通过复杂的 splitChunks
或 manualChunks
配置来实现上述目标,但是 Farm 原生支持局部打包
。
请注意,默认的打包策略是为浏览器设计的,但它也适用于 Node.js。 如果想要更改 Node.js 的打包策略,请尝试配置局部打包。
提示
请参考 RFC-003 Partial Bundling 局部打包以获取更多技术细节。