模块解析
模块解析指的是将模块标识符转换为模块的文件路径的过程。
Rspack 使用 rspack-resolver 来进行模块路径解析,它是对 Node.js 模块解析算法 的一个扩展,其接口和 enhanced-resolve 保持一致。
参考 resolve 配置 了解更多关于模块解析的配置。
Rspack 中的解析规则
Rspack 支持如下三种文件路径:
绝对路径
因为该路径已经是绝对路径,因此一般不需要再做进一步解析,直接返回该路径即可。
相对路径
在这种情况下,使用 import 和 require 的资源文件所处的目录,被认为是上下文目录。在 import/require 中给定的相对路径,会拼上该上下文目录路径,来生成模块的绝对路径。
模块路径
模块路径指那些没有以 './'、'../'、'/' 开头的路径。在这种情况下,Rspack 会根据模块解析规则,来解析模块的绝对路径。node 模块解析算法有关于解析模块规则的详细说明。
package.json imports
Rspack 的解析器支持 package.json 的 imports 字段,用于解析包内以 # 开头的模块标识符。
比如下面的例子,#utils 和 #/main 都会从当前包的 imports 字段中解析:
package.json
src/index.js
使用
resolve.importsFields选项可以自定义imports字段的名称。

