解析器(Resolvers)
webpackjsorg-mainAPI 参考
解析器(Resolvers)
解析器是使用 enhanced-resolve 包创建的。Resolver 类扩展了 tapable 类,并使用 tapable 提供一些钩子。enhanced-resolve 包可以用于直接创建新的解析器,但任何 compiler 实例 都有一些可以 tap 进入的解析器实例。
在继续阅读之前,请务必查看 enhanced-resolve 和 tapable 文档。
类型
compiler 类上有三种内置解析器类型:
normal:通过绝对路径或相对路径解析模块。context:在给定上下文内解析模块。loader:解析 webpack loader。
根据需要,compiler 使用的这些内置解析器中的任何一个都可以通过插件进行自定义:
js
compiler.resolverFactory.hooks.resolver
.for("normal")
.tap("MyResolverPlugin", (resolver) => {
resolver.hooks.result.tap("MyResolverPlugin", (result) => result);
});
其中 [type] 是上面提到的三种解析器之一。
参见 enhanced-resolve 文档 获取完整的钩子列表及其说明。
配置选项
上面提到的解析器也可以通过配置文件中的 resolve 或 resolveLoader 选项进行自定义。这些选项允许用户通过多种选项(包括 resolve plugins)来更改解析行为。
解析器插件(例如 DirectoryNamedPlugin)可以直接包含在 resolve.plugins 中,而不是直接用于 plugins 配置选项。
注意:
resolve配置影响normal和context解析器,而resolveLoader用于修改loader解析器。
帮助我们改进文档
发现翻译问题或内容错误?请告诉我们。
