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/build/resolve.md.
close
  • 简体中文
  • resolve

    与模块解析相关的选项。

    resolve.aliasStrategy resolve.aliasStrategyresolve.aliasStrategy

    控制 resolve.alias 选项与 tsconfig.json 中的 paths 选项的优先级。

    resolve.alias resolve.aliasresolve.alias

    设置模块路径的别名,用于简化导入路径或重定向模块引用,类似于 Rspack 的 resolve.alias 配置。

    对于 TypeScript 项目,你只需要在 tsconfig.json 中配置 compilerOptions.paths 即可,Rstest 会自动识别它,不需要额外配置 resolve.alias 字段。

    resolve.dedupe resolve.deduperesolve.dedupe

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

    resolve.extensions resolve.extensionsresolve.extensions

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

    resolve.conditionNames resolve.conditionNamesresolve.conditionNames

    控制解析包 exports 字段时使用的条件名称列表。

    默认值: 取决于测试环境和依赖类型。

    对于 node、jsdom 和 happy-dom 测试,Rstest 继承 Rspack 的默认条件。在默认的 NODE_ENV=test 下,打包 JavaScript 依赖时使用以下条件:

    测试环境ESM importCommonJS require
    nodeimport、module、webpack、development、noderequire、module、webpack、development、node
    jsdom / happy-dombrowser、import、module、webpack、development、nodebrowser、require、module、webpack、development、node

    Rstest 在打包时将 NODE_ENV=test 视为开发模式,因此即使 NODE_ENV 为 'test',也会启用 development 条件。匹配入口的优先级由包的 exports 键顺序决定,而非 conditionNames 的排列顺序。

    自定义此选项时,可以通过 '...' 保留 Rspack 的默认条件。例如,node 测试可以使用 conditionNames: ['custom', '...'],jsdom / happy-dom 测试则使用 conditionNames: ['browser', 'custom', '...']。显式设置此选项后,Rstest 不再自动添加 browser。

    不包含 '...' 的列表会覆盖各依赖类型的默认条件,包括 import 和 require 的区别。

    如果需要移除某个默认条件,同时保留 ESM 和 CommonJS 各自的解析条件,请配置 tools.rspack.resolve.byDependency。可参考 Jest 迁移示例,其中演示了如何排除 development,并说明了何时需要包含 browser。

    resolve.mainFields resolve.mainFieldsresolve.mainFields

    控制包入口字段的优先级顺序,例如 main、module 和 browser。