本节内容派生于以下链接指向的内容 ,并遵守 CC BY 4.0 许可证的规定。
以下内容如果没有特殊声明,可以认为都是基于原内容的修改和删减后的结果。
模块解析:该选项用于配置 Rspack 模块解析逻辑。
ObjectRecord<string, false | string | (string | false)[]>{}路径别名,例如:
此时:
require("@/a") 会尝试解析 <root>/src/a。require("abc") 会尝试解析 <root>/src/abc。require("abc/file.js") 不会命中匹配规则,它会尝试去解析 node_modules/abc/files.js。string[]['browser']定义一个字段,例如 browser,以依照此规范进行解析。
string[][]与 node 的 conditionNames 相同,用于 package.json 中的 exports 和 imports 字段。
string[]['package.json']用于描述的 JSON 文件。
boolean默认情况下,当 resolve.extensions 包含空字符串时,enforceExtension 会设置为 true;否则,将设置为 false。
如果是 true,将不允许无扩展名文件。默认如果 ./foo 有 .js 扩展,require('./foo') 可以正常运行。但如果启用此选项,只有 require('./foo.js') 能够正常工作。
string[][".js", ".json", ".wasm"]按照顺序解析模块,例如 require('./index'),会依次尝试解析 './index.js'、'./index.json'...
Record<string, string[] | string>{}定义拓展名的别名,例如
在 require('./index.js') 时,会依次尝试解析 './index.ts', ./index.js。
Record<string, false | string>{}当常规解析失败时重定向模块请求。
Rspack 默认不会为 Node.js 核心模块提供 polyfills,这意味着如果你在浏览器或类似环境中运行的代码中使用它们,你将需要从 NPM 安装兼容的模块并自行包含它们。
你可以使用 node-polyfill-webpack-plugin 来自动 polyfill Node.js 核心模块。
或者参考 webpack 4 使用的 Node.js polyfills 列表:
string[]target 为 web 时为 ["browser", "module", "main"]["module", "main"]尝试解析 package.json 中的字段,例如:
则 import value from 'lib' 的结果为 lib/es/index.js。
string[]["index"]解析目录时的文件名后缀,例如 require('./dir/') 会尝试解析 './dir/index'。
string[]["exports"]自定义 package.json 中的 exports 字段,例如:
则当配置为 ["testExports", "exports"] 时, import value from 'lib' 的结果为 lib/test.js。
string[]['imports']自定义 package.json 中的 imports 字段,用于提供包的内部请求(以 # 开头的请求被视为内部请求)
例如:
则当配置为 ["testImports", "imports"] 时, 当前包内 import value from '#foo' 的结果为 src/test/foo.js。
string[]["node_modules"]解析依赖时的目录名。
booleanfalse当开启时,require('file') 会首先寻找当前目录下的 ./file 文件,而不是 <modules>/file。
booleanfalse在解析时,倾向使用与 resolve.roots 相关的绝对路径。
Rspack 中用来替代 tsconfig-paths-webpack-plugin 的配置。
string | object | undefinedundefinedstring这个选项接受的是 tsconfig.json 的文件路径。在开启这个选项后, Rspack 会基于 tsconfig.json 中 的 paths 和 baseUrl 来寻找模块,其功能等同于 tsconfig-paths-webpack-plugin。
string[] | "auto" | undefinedundefined支持 tsconfig-paths-webpack-plugin 中定义的 tsconfig project references.
可以通过文件路径用于手动配置,或者使用 auto 用于自动读取 tsconfig.references 中的文件路径。
使用 undefined 将会关闭该功能。
booleanfalse不再解析扩展名,不再解析 package.json 中的 mainFiles(但不会影响来自 mainFiles, browser, alias 的请求)。
string[][]限制请求解析路径的解析限制列表。
string[][]一个目录列表,用于解析服务器相对 URL(以'/'开头的 URL)。默认使用 context 配置选项。在非 Windows 系统上,这些请求首先作为绝对路径进行解析。
booleantrue是否将符号链接(symlink)解析到它们的符号链接位置(symlink location)。
启用时,符号链接的资源,将解析为其真实路径,而不是其符号链接的位置。注意,当使用创建符号链接包的工具(如 npm link)时,这种方式可能会导致模块解析失败。
Record<string, Resolve>.依据模块类型自定义 Resolve 配置。