模块解析
模块解析指的是将模块标识符转换为模块的文件路径的过程。Rspack 使用 Rust 版本的 enhanced-resolve 来进行模块路径解析,它是对 node 模块解析算法的一个扩展,其接口和 enhanced-resolve 保持一致,请参考 resolve 配置 了解更多关于模块解析的配置。
Rspack 中的解析规则
Rspack 支持如下三种文件路径:
绝对路径
import '/home/me/file';
因为该路径已经是绝对路径,因此一般不需要再做进一步解析,直接返回该路径即可。
相对路径
import './src/answer';
在这种情况下,使用 import 和 require 的资源文件所处的目录,被认为是上下文目录。在 import/require 中给定的相对路径,会拼上该上下文目录路径,来生成模块的绝对路径。
模块路径
import 'lodash';
模块路径指那些没有以 './'
、'../'
、'/'
开头的路径。在这种情况下,Rspack 会根据模块解析规则,来解析模块的绝对路径。node 模块解析算法有关于解析模块规则的详细说明。