For AI agents: the complete documentation index is available at /zh/llms.txt, the full documentation bundle is available at /zh/llms-full.txt, and this page is available as Markdown at /zh/config/rsbuild/resolve.md.
close
  • 简体中文
  • resolve

    与模块解析相关的选项。

    resolve.aliasStrategy resolve.aliasStrategyresolve.aliasStrategy

    设置路径别名解析的策略,用于控制 tsconfig.json 中的 paths 选项与 resolve.alias 选项之间的优先级关系。

    resolve.alias resolve.aliasresolve.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
      export default {
        // ...
        resolve: {
          alias: {
            lodash: 'lodash-es',
          },
        },
      };

      此时,所有在源代码中导入的 lodash 模块将被映射为 lodash-es,并被打包到产物中。

    • output.externals 用于处理外部化模块的别名映射。外部化模块不会被打包到产物中,而是在运行时从外部源导入。

      例如,如果你想将产物中的外部化模块 react 和 react-dom 替换为 preact/compat,可以这样配置:

      rslib.config.ts
      export default {
        // ...
        output: {
          externals: {
            react: 'preact/compat',
            'react-dom': 'preact/compat',
          },
        },
      };

      此时,代码 import { useState } from 'react' 将被替换为 import { useState } from 'preact/compat'。

    Note

    在 bundleless 模式下,由于没有打包这个概念,所有模块都会被外部化,Rslib 会自动根据 resolve.alias 或 tsconfig.json 中 compilerOptions.paths 配置的映射关系,对最终解析到 outBase 目录下的模块进行转换。

    resolve.conditionNames resolve.conditionNamesresolve.conditionNames

    指定用于匹配包 exports 字段 入口点的 condition names(条件名称)。

    resolve.dedupe resolve.deduperesolve.dedupe

    强制 Rsbuild 从项目根目录解析指定的包,这可以用于移除重复包和减少包大小。

    resolve.extensions resolve.extensionsresolve.extensions

    自动添加导入文件的扩展名。这意味着你可以导入文件,而不需要显式地写它们的扩展名。

    resolve.mainFields resolve.mainFieldsresolve.mainFields

    控制用于定位包入口文件的 package.json 字段优先级。Rspack 在解析 npm 包入口时,会按该列表的顺序依次尝试这些字段。