close
  • 简体中文
  • source

    与输入的源代码相关的选项。

    source.decorators source.decoratorssource.decorators

    用于配置装饰器语法。

    如果你使用了 TypeScript 的 experimentalDecorators,此处应将 source.decorators.version 设置为 legacy。

    source.assetsInclude source.assetsIncludesource.assetsInclude

    指定额外需要按静态资源处理的文件。

    当你的测试会导入 Rsbuild 默认资源规则之外的文件类型时,这个配置很有用,比如 .txt.md

    import { defineConfig } from '@rstest/core';
    
    export default defineConfig({
      source: {
        assetsInclude: /\.(txt|md)$/,
      },
    });

    如果你已经通过 @rstest/adapter-rsbuild@rstest/adapter-rslib 复用 Rsbuild / Rslib 配置,source.assetsInclude 也会被自动继承。

    source.define source.definesource.define

    构建时将代码中的变量替换成其它值或者表达式,可以用于在构建时向代码注入环境变量等信息。

    source.exclude source.excludesource.exclude

    排除不需要被 SWC 转译的 JavaScript 或 TypeScript 文件。

    Note

    source.exclude 中配置的文件不会经过 SWC 转译,但被引用的文件仍然会被打包到产物中。

    如果你希望某些文件不被打包到产物中,可以使用 output.externals 配置项或 Rspack 的 IgnorePlugin

    source.include source.includesource.include

    指定额外需要编译的 JavaScript 文件。

    source.transformImport source.transformImportsource.transformImport

    配置按需导入转换规则。

    rstest.config.ts
    import { defineConfig } from '@rstest/core';
    
    export default defineConfig({
      source: {
        transformImport: [
          {
            libraryName: 'demo-lib',
            libraryDirectory: '.',
            camelToDashComponentName: false,
          },
        ],
      },
    });
    Caution

    source.transformImport 会在编译阶段改写最终的模块请求。

    当前实现下,rs.mock('pkg')rs.doMock('pkg')rs.importActual('pkg')rs.requireActual('pkg') 这类仍然使用原始 specifier 的模块级 mock API,可能无法命中被改写后的模块请求。

    source.tsconfigPath source.tsconfigPathsource.tsconfigPath

    • CLI: --source.tsconfigPath <path>

    配置自定义的 tsconfig.json 文件路径,可以是相对路径或绝对路径。