当前位置:   article > 正文

webpack loader - loader-runner源码解析_iteratepitchingloaders

iteratepitchingloaders

webpack中使用 loader-runner 插件处理 loader 的收集和执行
loader-runner:4.2.0
loader-runner 导出两个方法:
1.runLoaders
runLoaders中 iteratePitchingLoaders(遍历 loader 的 pitch,并执行 pitch 方法),iterateNormalLoaders (遍历 loader ,执行 loader 导出的方法)
通过如下简单示例分析:
在这里插入图片描述
(1)生成全局对象 loaderContext
在这里插入图片描述
(2)生成 loader 的 数组对象
在这里插入图片描述
(3)调用 iteratePitchingLoaders
在这里插入图片描述
iteratePitchingLoaders 根据 loaderContext.loaderIndex 和 loaderContext.loaders.length 遍历 loaders,
loadLoader 方法 读取了 loader 的文件,并且将读取的结果赋值到了 loaders{} 的 normal 字段上,
loaderContext.loaderIndex >= loaderContext.loaders.length 时 执行 processResource
在这里插入图片描述
在这里插入图片描述
processResource 函数 调用 options.processResource(调用 runLoaders 传入的 processResource 或者 runLoaders 函数中声明的 processResource 方法),options.processResource 主要获取需要解析文件的文件流,以及将文件 push 到 fileDependencies 遍历,获取到文件后调用 processResource 的回调函数
在这里插入图片描述
在这里插入图片描述
iterateNormalLoaders 函数 将 需要解析的文件的 buffer 转为 字符串,根据 loaderContext.loaders[loaderContext.loaderIndex] 执行 loader 导出的函数 (loader 从右向左),直到loaderContext.loaderIndex < 0
在这里插入图片描述
在这里插入图片描述
runLoaders 的 回调函数中能拿到 loaderContext, resourceBuffer,fileDependencies等数据
在这里插入图片描述
在这里插入图片描述

  1. getContext
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/502326
推荐阅读
相关标签
  

闽ICP备14008679号