@fuf-stack/vitest-config

中文文档
5.1.0发布于 2026/11/13MITTypeScriptES Module构建来源已验证近 30 天下载 3803

fröhlich 的默认虚拟配置

中文使用文档
文档目录7 节
  1. @fuf-stack/vitest-config
  2. 可用的配置
  3. 安装
  4. 使用量
  5. 为什么 .mts 扩展?
  6. 脚本
  7. 许可证

@fuf-stack/vitest-config

Fröhlich QQ Frei 的默认虚拟配置 。 为工作空间级别(root)和项目级别(package)设置提供单独的配置.

与 Vitest 4.0+ 兼容

可用的配置

工作空间配置 (单位:千美元)/workspace- 对于单发根:

  • 定义工作空间结构的项目阵列
  • V8涵盖范围明确包括/不包括
  • CI 工具的 LCOV 记者

项目配置 (单位:千美元)/project- 对于单个包:

  • 类型脚本路径映射分辨率
  • 默认节点环境
  • 测试之间清晰的模拟

安装

# pnpm
pnpm add -D @fuf-stack/vitest-config vitest @vitest/coverage-v8

# npm
npm i -D @fuf-stack/vitest-config vitest @vitest/coverage-v8

# yarn
yarn add -D @fuf-stack/vitest-config vitest @vitest/coverage-v8

使用量

重要内容: 使用 .mts 导入此只使用无害环境管理软件包时用于配置文件的扩展名。 使用 .ts 可能导致捆绑器出错, 因为工具可能试图使用 require() 改为 import。 。 。 .

工作空间根配置

使用您单列波根中的工作空间配置 vitest.config.mts数字 :

// vitest.config.mts (root)
import config from '@fuf-stack/vitest-config/workspace';

export default config;

该条规定:

  • 工程阵列 : ['apps/*', 'packages/!(config)', 'packages/config/*']
  • 有合理默认的覆盖配置
  • LCOV 记者

packages/config 是一个容器,而不是一个测试项目。 其儿童包是: 包括个人,所以他们的测试一次用自己的包名进行.

需要时自定义 :

使用 mergeConfig 在保留默认项目发现的同时调整设置:

// vitest.config.mts
import { mergeConfig } from 'vitest/config';

import workspaceConfig from '@fuf-stack/vitest-config/workspace';

export default mergeConfig(workspaceConfig, {
  test: {
    testTimeout: 10_000,
  },
});

在默认路径外添加工程 :

用于现有测试项目 tools/integration-tests,添加其目录 相对工作空间根. mergeConfig 调和数组, 因此延伸 projects 在保存默认的应用程序和软件包项目时 :

// vitest.config.mts
import { mergeConfig } from 'vitest/config';

import workspaceConfig from '@fuf-stack/vitest-config/workspace';

export default mergeConfig(workspaceConfig, {
  test: {
    projects: ['tools/integration-tests'],
  },
});

该目录可以提供自己的 vitest.config.mts 用于特定项目设置.

添加内置工程和额外覆盖路径 :

内部项目和 coverage.include 编号 : coverage.exclude数字 : 您的条目附在默认值后。 不要手动传播基础配置.

// vitest.config.mts
import { mergeConfig } from 'vitest/config';

import workspaceConfig from '@fuf-stack/vitest-config/workspace';

export default mergeConfig(workspaceConfig, {
  test: {
    projects: [
      {
        test: {
          name: 'scripts',
          include: ['scripts/**/*.test.mjs'],
          environment: 'node',
        },
      },
    ],
    coverage: {
      include: ['scripts/**/*.mjs'],
    },
  },
});

默认覆盖排除已匹配 *.test.* 编号 : *.spec.* 每个文件 JS/TS扩展到工作区任何地方,所以额外包括不需要匹配 测试排除.

软件包级别配置

使用单个软件包中的工程配置 vitest.config.mts数字 :

// packages/my-package/vitest.config.mts
import config from '@fuf-stack/vitest-config/project';

export default config;

该条规定:

  • TypeScript 路径映射分辨率( Vite 原生) resolve.tsconfigPaths(中文(简体) )
  • 节点环境(有益于图书馆、公用事业)
  • 测试之间清晰的模拟

用于反应组件( 需要jsdom) :

// packages/ui-components/vitest.config.mts
import { mergeConfig } from 'vitest/config';

import projectConfig from '@fuf-stack/vitest-config/project';

export default mergeConfig(projectConfig, {
  test: {
    environment: 'jsdom',
    setupFiles: ['./vitest.setup.ts'],
  },
});

从Vitest 3.x迁移

  1. 根配置: 使用 /workspace 导入
  2. 软件包配置: 使用 /project 导入(或自定义为 mergeConfig(中文(简体) )
  3. 重命名配置文件更改 .ts → .mts (仅限无害环境管理的包件需要)
  4. 删除 vitest.workspace.ts 文件
  5. 确保每个软件包的使用 defineProject() (由 /project 配置( c)

为什么 .mts 扩展?

此套装仅限无害环境管理("type": "module") (中文(简体) ). 当 Vitest 捆绑配置文件时 :

  • .ts 文件模糊不清 - 捆绑者可能尝试 require() ❌
  • .mts 明确声明 ES 模块 - 使用 import ✅

使用 .ts 可能导致以下错误:

Error: Cannot use import statement outside a module

这个 .mts 扩展介绍将文件作为ES模块处理的工具,允许适当进口仅属于无害环境管理的依赖性.

脚本

{
  "scripts": {
    "test": "vitest",
    "test:coverage": "vitest --coverage"
  }
}

许可证

麻省理工学院

版本与发布记录

@fuf-stack/vitest-config 共发布 38 个版本,首次发布于 2024/04/03;过去 12 个月发布了 15 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
5.1.0latest2026/11/132 天前
5.0.82026/10/2224 天前
5.0.72026/10/121 个月前
5.0.62026/09/231 个月前
5.0.52026/09/211 个月前
5.0.42026/07/173 个月前

关于 @fuf-stack/vitest-config 的常见问题

@fuf-stack/vitest-config 是什么?

fröhlich 的默认虚拟配置

如何安装 @fuf-stack/vitest-config?

在项目目录运行 npm install @fuf-stack/vitest-config,或使用 pnpm add / yarn add / bun add。

@fuf-stack/vitest-config 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@fuf-stack/vitest-config 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@fuf-stack/vitest-config 可以商用吗?

@fuf-stack/vitest-config 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@fuf-stack/vitest-config 的下载量有多少?

根据 npm 官方下载统计,@fuf-stack/vitest-config 在 2026/10/16 – 2026/11/14 这 30 天内被下载 3,803 次,日均约 127 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@fuf-stack/vitest-config 还在维护吗?

最新版本 5.1.0 发布于 2026/11/13(2 天前);至今共发布 38 个版本,其中过去 12 个月发布了 15 个;首次发布于 2024/04/03。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。