本节内容来源于以下链接,并受 CC BY 4.0 许可证保护。
除非另有说明,以下内容可被认为是基于原始内容的修改和删除的结果。
用于配置 Rspack 模块解析逻辑。
Object
Record<string, false | string | (string | false)[]>
{}
路径别名,例如:
此时
require("@/a")
将尝试解析 <root>/src/a
。require("abc")
将尝试解析 <root>/src/abc
。require("abc/file.js")
将不会匹配,并且它将尝试解析 node_modules/abc/file.js
。string[]
['browser']
定义一个字段,例如 browser
,它应该根据 此规范 进行解析。
string[]
[]
与 node 的 conditionNames 相同,用于 package.json 中的 exports
和 imports
字段。
string[]
['package.json']
用于描述的 JSON 文件。
boolean
默认情况下,如果 resolve.extensions 包含空字符串,则它将更改为 true
;否则,此值将更改为 false
。
如果为 true
,则不允许使用无扩展名的文件。因此,默认情况下 require('./foo')
如果 ./foo
具有 .js
扩展名,则可以正常工作,但如果启用了此选项,则只有 require('./foo.js')
才可以正常工作。
string[]
[".js", ".json", ".wasm"]
按顺序解析模块,例如 require('. /index')
,将尝试解析 '. /index.js'
、'. /index.json'
...
Record<string, string[] | string>
{}
定义扩展名的别名。例如:
这对 TypeScript 项目特别有用,因为 TypeScript 建议使用 .js
扩展名引用 TypeScript 文件。
Rspack 在解析 import './foo.js'
时,将依次尝试解析 './foo.ts'
和 ./foo.js'
。
Record<string, false | string>
{}
当正常解析失败时,重定向模块请求。
Rspack 不会自动填充 Node.js 核心模块,这意味着如果您在浏览器或类似环境中运行的代码中使用它们,则必须从 NPM 安装兼容的模块并自行包含它们。
您可以使用 node-polyfill-webpack-plugin 自动填充 Node.js 核心 API。
或者参考 webpack 4 使用的 Node.js 填充列表
string[]
["imports"]
自定义 package.json 中的 imports
字段,用于提供包的内部请求(以 #
开头的请求被视为内部请求)。
例如:
当此配置为 ["testImports", "imports"] 时,当前包中 import value from '#foo'
的结果为 src/test/foo.js
。
string[]
target
为 ["browser", "module", "main"]
当它是 web 时["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[]
["node_modules"]
解析依赖项时使用的目录名称。
boolean
false
启用后,require('file')
将首先在当前目录中查找 . /file
文件,而不是 <modules>/file
。
boolean
false
在解析时选择相对于 resolve.roots
的绝对路径。
string | object | undefined
undefined
在 Rspack 中替换 tsconfig-paths-webpack-plugin。
string
如果您通过选项传递 tsconfig.json
的路径,Rspack 将尝试根据 tsconfig.json
的 paths
和 baseUrl
来解析模块,功能等同于 tsconfig-paths-webpack-plugin。
string[] | "auto" | undefined
undefined
支持 tsconfig 项目引用,如 tsconfig-paths-webpack-plugin 中定义的那样。
可以手动提供 tsconfig 路径列表,或者指定 auto
从 tsconfig.references
自动读取路径列表。
当值为 undefined
时,此功能被禁用。
boolean
false
不再解析扩展名,不再解析 package.json 中的 mainFiles(但不影响来自 mainFiles、browser、alias 的请求)。
string[]
[]
一个 resolve 限制列表,用于限制请求可以在哪些路径上解析。
string[]
[]
一个目录列表,用于解析与服务器相关的 URL(以 '/' 开头)。它默认为 context
配置选项。在 Windows 以外的系统上,这些请求最初被解析为绝对路径。
boolean
true
是否将符号链接解析到其符号链接的位置。
启用后,符号链接的资源将解析到其真实路径,而不是其符号链接的位置。请注意,当使用符号链接包的工具(如 npm link
)时,这可能会导致模块解析失败。
Record<string, Resolve>
。根据模块类型自定义 Resolve 配置。