webpack loader 的运行过程

414 阅读1分钟

loaderRunner

webpack 的 NormalModule 的 doBuild 函数调用了 loaderRunder 组件的 runLoaders 去 加载loader 并且 执行loader 工厂方法

过程

1.调用runLoader 执行初始化

2.iteratePitchingLoaders 遍历数组

3.loadLoader 加载loader,通过require() 方式加载。 并且把加载的工厂方法挂载到 loaderContext.loader 的 normal 中

4.如果loader 包含pitch 函数,则立即执行

5.如果是最后一个loader, 调用processResource 加载源码

6.否则加载下一个loader

7.调用processResource加载待编译的源代码 并将源码传递给 iterateNormalLoaders 执行

8.iterateNormalLoaders 调用 runSyncOrAsync

9.runSyncOrAsync 调用 loader 的工厂函数,获得编译后的结果