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.moduleNameMapper

  • 类型: Record<string, string | string[]>
  • 默认值: undefined

从正则表达式到模块名称或模块名称数组的映射,允许用单个模块替换多个模块。这类似于 Jest 的 moduleNameMapper 配置。

rstest.config.ts
import { defineConfig } from '@rstest/core';

export default defineConfig({
  resolve: {
    moduleNameMapper: {
      // 精确匹配模块名
      '^module-a$': '<rootDir>/mocks/module-a.ts',
      // 使用捕获组进行匹配
      '^@utils/(.*)$': '<rootDir>/src/utils/$1',
      // 替换 CSS 导入
      '\\.(css|less|scss)$': 'identity-obj-proxy',
    },
  },
});
Tip

对于简单的路径别名,建议使用 TypeScript 的 tsconfig.json 中的 pathsresolve.alias 配置,它们提供更好的性能和 IDE 支持。