作用:
因为 node.js 是单线程模型的,如果遇到大量文件需要解析和处理,因为构建和读写是计算密集型操作,这时 webpack 构建就会变得特别慢。
Happypack 是把任务分解给多个子进程并发执行的,执行完后再把结果发送给主进程。
happypack 原理
在整个 webpack 构建流程中,最耗时的是 loader 对文件的转换操作。因为要转换的文件数据特别多,而且这些转换操作只能串行处理。
happypack 的核心原理就是把这部分任务分解到多个进程并行执行,从而减少整体的构建时间。
每通过 new HappyPack() 实例化一个 HappyPack 其实就是告诉 HappyPack 核心调度器如何通过一系列 Loader 去转换一类文件,并且可以指定如何给这类转换操作分配子进程。