resolve
与模块解析相关的选项。
resolve.aliasStrategy
resolve.aliasStrategy
控制 resolve.alias 选项与 tsconfig.json 中的 paths 选项的优先级。
resolve.alias
resolve.alias
设置模块路径的别名,用于简化导入路径或重定向模块引用,类似于 Rspack 的 resolve.alias 配置。
对于 TypeScript 项目,你只需要在 tsconfig.json 中配置 compilerOptions.paths 即可,Rslib 会自动识别它,不需要额外配置 resolve.alias 字段。
值得注意的是,在 bundle 模式下,resolve.alias 与 output.externals 都可以用于设置别名,但它们在以下方面有所不同:
-
resolve.alias用于将目标模块替换为另一个模块,该模块会被打包到产物中。例如,如果你想在打包一个 package 时将
lodash替换为lodash-es,可以这样配置:rslib.config.ts此时,所有在源代码中导入的
lodash模块将被映射为lodash-es,并被打包到产物中。 -
output.externals用于处理外部化模块的别名映射。外部化模块不会被打包到产物中,而是在运行时从外部源导入。例如,如果你想将产物中的外部化模块
react和react-dom替换为preact/compat,可以这样配置:rslib.config.ts此时,代码
import { useState } from 'react'将被替换为import { useState } from 'preact/compat'。
在 bundleless 模式下,由于没有打包这个概念,所有模块都会被外部化,Rslib 会自动根据 resolve.alias 或 tsconfig.json 中 compilerOptions.paths 配置的映射关系,对最终解析到 outBase 目录下的模块进行转换。
resolve.dedupe
resolve.dedupe
强制 Rsbuild 从项目根目录解析指定的包,这可以用于移除重复包和减少包大小。
resolve.extensions
resolve.extensions
自动添加导入文件的扩展名。这意味着你可以导入文件,而不需要显式地写它们的扩展名。
