close

output

output.module output.moduleoutput.module

是否以 ES 模块格式输出 JavaScript 文件。

Rstest 默认会以 CommonJS 格式输出并执行测试代码。如果你希望以 ES 模块格式输出测试代码,可以通过如下配置项开启:

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

export default defineConfig({
  output: {
    module: true,
  },
});

output.externals output.externalsoutput.externals

配置代码中的某些 import 的依赖不被打包,而是由 Rstest 在运行时去获取这些依赖。

  • 在 Node.js 测试环境中,默认打包:
    • 任意目录下的 TypeScript 和 JSX 文件,匹配的文件后缀为 .ts.tsx.jsx.mts.cts
    • node_modules 目录下的 JavaScript 文件,匹配的文件后缀为 .js.mjs.cjs
  • 在类浏览器(jsdom 等)测试环境中,默认打包所有依赖。

如果你想某个依赖不被打包,可以在 output.externals 中进行配置。

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

export default defineConfig({
  output: {
    externals: ['react'],
  },
});

如果你希望所有依赖都被打包,可以通过如下配置:

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

export default defineConfig({
  tools: {
    rspack: (config) => {
      config.externals = [];
    },
  },
});

指定 external 类型

你可以通过 ${externalsType} ${libraryName} 语法来指定某个依赖的 external 类型。

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

export default defineConfig({
  output: {
    externals: {
      lodash: 'commonjs lodash', // 将 lodash 作为 CommonJS 模块进行 external
    },
  },
});

你也可以通过 externalsType 配置项 来指定所有依赖的默认 external 类型。

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

export default defineConfig({
  tools: {
    rspack: {
      externalsType: 'commonjs',
    },
  },
});

output.cssModules output.cssModulesoutput.cssModules

用于自定义 CSS Modules 的配置。

output.cleanDistPath output.cleanDistPathoutput.cleanDistPath

是否在测试开始前,清空输出目录下的所有测试临时文件。

默认情况下,Rstest 不会将测试临时文件写入磁盘,当你开启 Rstest 产物调试时可能需要此配置项。